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

dan*_*ana 0 django return function 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
Run Code Online (Sandbox Code Playgroud)

我想在另一个函数中调用它们,以便它可以返回一个值.我正在调用函数形式这样的另一个函数:

rank = calculate_questions_vote
Run Code Online (Sandbox Code Playgroud)

假设我现在只想显示函数calculate_questions_vote返回的值.当然,我将rank变量放在函数的上下文中.

我的问题是我的输出是:

<function calculate_questions_vote at 0x9420144>
Run Code Online (Sandbox Code Playgroud)

我怎样才能实际显示函数返回的值,而不是该字符串?

Joh*_*don 5

你需要传递一个请求对象calculate_questions_vote:

rank = calculate_questions_vote(request)
Run Code Online (Sandbox Code Playgroud)


Dan*_*man 5

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

calculate_questions_vote()
Run Code Online (Sandbox Code Playgroud)

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

calculate_questions_vote(request)
Run Code Online (Sandbox Code Playgroud)