为什么
<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))