【问题标题】:Django iterating - calculating a sumDjango迭代 - 计算总和
【发布时间】:2010-07-10 22:18:30
【问题描述】:

我正在尝试遍历一些值并计算排名。我有一个 calculate_rank 函数,我在其中计算值的总和。问题出在第二个功能上。我希望用户的排名是与他有关注关系的所有用户的总和。 我在这里的第二个函数中进行迭代,我尝试添加与作为参数发送的用户处于跟随关系的所有用户的排名。 我的问题是返回值为零 (0)。 我确定我在第二个函数中弄错了,但我没有看到:在哪里?

def calculate_rank(user):
 rank =  calculate_questions_vote(user) + calculate_votes(user) + calculate_replies(user)
 return rank


def calculate_followers_rank(user):
        follower = Relations.objects.filter(follow = user)
        follower_rank= 0
        for a in follower:
            follower_rank += calculate_rank(follower)
        return follower_rank

【问题讨论】:

    标签: python django function loops


    【解决方案1】:

    您将follower(即关注者的完整列表)传递给calculate_rank 函数。我想你要么想要a(迭代中的当前关注者)或user(被关注的原始用户)。

    如果您给变量提供更准确的名称,这些事情会更容易被发现。如果您以复数形式调用关注者列表followers,那么您会发现将其传递给 calculate_rank 是没有意义的。

    【讨论】:

    • 这看起来是个问题。此外,将“Follower”对象存储在名为“Relations”的模型中会令人困惑。
    • hmm...问题是,如果我传递'a'(用于计算用户'user'之后的用户等级总和),似乎我的函数仍然返回零。 ..我想知道为什么?
    • 可能是因为 Relations.objects 上的过滤器没有返回任何结果。但我希望你已经检查过了。或者您只是打算让 SO 为您构建并调试您的整个 web 应用程序?
    • 不,查询返回一些结果。 :) 我不打算让 SO 为我构建它,我只是想快速学习和发展,我知道及时找到答案是帮助我思考问题的最佳方式,因为我应该有
    猜你喜欢
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 2020-07-09
    相关资源
    最近更新 更多