Django调用返回值的函数不起作用

时间:2010-07-10 19:16:39

标签: django function return call

我在调用从另一个函数

返回结果的函数时遇到问题

为清楚起见,我的职能是:

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返回的值。 当然,我将rank变量放在函数的上下文中。

我的问题是我的输出是:

<function calculate_questions_vote at 0x9420144>

如何实际显示函数返回的值,而不是该字符串?

2 个答案:

答案 0 :(得分:5)

您需要将请求对象传递给calculate_questions_vote,如:

rank = calculate_questions_vote(request)

答案 1 :(得分:5)

这是基本的Python。你正在做的只是引用函数 - 将函数本身分配给另一个变量。要实际调用函数,您需要在其名称后使用括号:

calculate_questions_vote()

在您的情况下,您已将该函数定义为需要request对象,因此您还需要在调用中使用该函数:

calculate_questions_vote(request)