python – Django:href {%url%}问题

为什么

<a href="{% url 'answers.views.display_answers' Question.id %}">View answers</a>

在我的模板中,由Django翻译为这种解释:

Request URL:    http://127.0.0.1:8000/questions/%7B%%20url%20'answers.views.display_answers'%20Question.id

这当然会导致网址不匹配错误.

好像它以ASCII形式读取我的'{‘.任何人都可以告诉我为什么会这样?

编辑:

这就是我渲染模板的方式 –

return render(request, 'display_questions.html', context) 

并且模板包含href.我的显示答案视图重定向到另一个视图:

def display_answers(request, q_id): 
        q = get_object_or_404(Question, id=q_id) 
        ans_list = Answer.objects.filter(question=q) 
        context = {'question': q, 'ans_list': ans_list} 
        return redirect('view_answers.html', context)

错误:

当前网址,问题/ {%url’answer.views.display_answers’Question.id,与这些中的任何一个都不匹配.

最佳答案 这是对的.如果不是 – 你的urls.py似乎是错的.请发布.

<a href="{% url answers.views.display_answers question.id %}">View answers</a>

编辑
这是一个更好的视图版本.

from django.template import RequestContext
from django.core.urlresolvers import reverse
from django.shortcuts import render_to_response, redirect, get_object_or_404

def display_answers(request, q_id): 
    q = get_object_or_404(Question, id=q_id) 
    ans_list = Answer.objects.filter(question=q) 
    context = {'question': q, 'ans_list': ans_list} 
    return render_to_response('view_answers.html', context, RequestContext(request))
点赞