我尝试使用模板中的可选参数调用视图,但会抛出异常。
这是我的观点:
def page(request, page_id=1):
page = Page.objects.filter(pk=page_id).first()
context = {
'page': page,
'answers': Answer.objects.filter(source_page_id=page.id)
}
return render(request, 'page.html', context)
我尝试从page.html
模板中调用它:
<ul>
{% for answer in answers %}
<li><a href="{% url 'page' answer.target_page_id %}">{{ answer.choice_text }}</a></li>
{% endfor %}
</ul>
但由于某种原因,抛出异常,如下所示:
Reverse for 'page' with arguments '(1,)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['$$']
这里发生了什么?提前谢谢。
答案 0 :(得分:1)
您需要在urls.py中为视图定义输入参数:
这是错误的:
url(r"^page/$", page, name="page"),
这是对的:
url(r"^page/(?P<page_id>.*)/$", page, name="page"),
答案 1 :(得分:-1)
尝试改变它:
def page(request, pk):
page = Page.objects.get(pk=1).first()
context = {
'page': page,
'answers': Answer.objects.filter(source_page_id=page__id)
}
return render(request, 'page.html', context)