Django迭代 - 计算总和

时间:2010-07-10 22:18:30

标签: python django function loops

我正在尝试迭代某些值,并计算排名。我有一个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

1 个答案:

答案 0 :(得分:4)

您将follower - 即完整的关注者列表 - 传递到calculate_rank函数中。我认为您要么a(迭代中的当前关注者),要么user(原始用户被关注)。

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