2010-07-10 2 views
1

일부 값을 반복하고 순위를 계산하려고합니다. 나는 합계를 계산하는 calculate_rank 함수를 가지고있다. 문제는 두 번째 기능입니다. 나는 그 사용자의 계급이 그를 따르는 관계에있는 모든 사용자의 합계가되기를 바란다. 두 번째 함수에서 반복을 수행하여 여기에서 매개 변수로 전송 된 사용자와 후속 관계에있는 모든 사용자의 순위를 추가하려고합니다. 내 문제는 반환 된 값이 0입니다. 두 번째 기능을 잘못 이해하고 있지만 확실하지 않습니다. 어디에서? 당신은 follower 전달하는장고 반복 - 합계를 계산하십시오.

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

일 - calculate_rank 기능에 - 추종자의 전체 목록을 즉. 제 생각에는 a (현재 진행중인 반복자) 또는 user (원래 사용자가 따라 다니는 중)이 필요합니다.

변수를보다 정확하게 지정하면 이러한 일이 쉽게 발견 될 수 있습니다. 추종자 목록을 followers이라고 부르면 복수형으로 표시되어 calculate_rank에 전달하는 것이 타당하지 않을 수 있습니다.

+0

문제가있는 것 같습니다. 또한 "Follower"객체를 "Relations"라는 모델에 저장하는 것은 혼란 스럽습니다. –

+0

음 ... 문제는 내가 'a'(사용자 '사용자'다음 사용자의 순위를 계산할 때)를 전달하는 경우 내 함수가 여전히 0을 반환하는 것처럼 보입니다 ... 이유가 궁금합니다. – dana

+0

아마도 Relations.objects의 필터가 결과를 반환하지 않기 때문일 수 있습니다. 하지만 이미 확인했으면 좋겠어요. 아니면 그냥 빌드하고 지금 당신을 위해 전체 webapp 디버깅을 묻는 계획입니까? –

관련 문제