2010-07-10 29 views
0

的功能,從另一個功能Django的調用返回的值在調用返回結果的功能不工作時,我有一個問題,

要清楚,我的職責是:

def calculate_questions_vote(request): 
    useranswer = Answer.objects.filter (answer_by = request.user) 
    positive_votes = VoteUpAnswer.objects.filter(answer = useranswer) 
    negative_votes = VoteDownAnswer.objects.filter(answer = useranswer) 
    question_vote_rank = sum(positive_votes) - sum(negative_votes.count) 
     return question_vote_rank 

def calculate_replies(request): 
    the_new = News.objects.filter(created_by = request.user) 
    reply = Reply.objects.filter(reply_to = the_new) 
    reply_rank = sum(reply) 
     return reply_rank 

我想在另一個函數中調用它們,以便它可以返回一個值。 我打電話的功能,形成另一種功能是這樣的:

rank = calculate_questions_vote 

比方說,我只是想現在顯示通過該功能calculate_questions_vote返回的值。 當然,我將排名變量放在函數的上下文中。

我的問題是,我的輸出是:

<function calculate_questions_vote at 0x9420144> 

我怎樣才能真正讓它顯示由該函數返回的值,而不是該字符串?

回答

5

這是基本的Python。你所做的只是簡單地引用該函數 - 將函數本身分配給另一個變量。要真正通話一個功能,你需要它的名字後使用括號:

calculate_questions_vote() 

在你的情況,你定義的函數爲需要的request對象,所以你需要使用的呼叫作爲以及:

calculate_questions_vote(request) 
+0

這樣,我的新錯誤是:'instancemethod'對象是不可迭代的,儘管在模板中我稱它爲{{rank}} - 沒有迭代 – dana 2010-07-10 19:50:45

+0

哦,你其實是對的,我的新問題最終是主題另一個問題。這是我應該如何調用函數,現在我必須弄清楚我應該如何調用calculate_function_vote(我猜它實際上返回多個值,這是我的錯誤的原因 - antway,我是相對較新的python: ))非常感謝您的回答! – dana 2010-07-10 20:03:16

5

你需要一個請求對象傳遞給calculate_questions_vote像:

rank = calculate_questions_vote(request) 
+0

現在我的新錯誤是:'instancemethod'對象是不可迭代的(儘管在我的tempalte我簡單地稱它{{rank}})它可能是什麼? – dana 2010-07-10 19:49:14

+0

答案是對的,非常感謝! – dana 2010-07-10 20:03:37

相關問題