2010-07-10 99 views
1

我試圖遍歷一些值,並計算一個等級。我有一個calculate_rank函數來計算值的總和。問題在於第二個功能。我希望用戶的排名是與他關係密切的所有用戶的總和。 我在這裏做第二個函數的迭代,我嘗試添加與作爲參數發送的用戶關聯的所有用戶的排名。 我的問題是返回的值是零(0)。 我確信我錯誤的第二個功能,但我沒有看到:在哪裏?Django迭代 - 計算總和

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 

回答

4

你傳遞follower - 即追隨者的完整列表 - 到calculate_rank功能。我想你或者想要a(迭代中的當前跟隨者)或user(原始用戶正在跟蹤)。

如果你給你的變量更準確的名字,這些事情會更容易發現。如果你以複數形式呼叫追隨者followers的列表,那麼你會發現將它傳遞到calculate_rank是沒有意義的。

+0

這看起來像是問題所在。另外,在名爲「關係」的模型中存儲「追隨者」對象是令人困惑的。 – 2010-07-10 22:40:02

+0

嗯......問題是,如果我傳遞'a'(用於計算用戶'用戶'之後用戶的排名總和),似乎我的函數仍然返回零...我不知道爲什麼? – dana 2010-07-11 08:00:02

+0

可能是因爲Relations.objects上的過濾器沒有返回任何結果。但我希望你已經檢查過了。或者你只是計劃要求建立並現在爲你調試整個webapp? – 2010-07-11 12:16:21