我在访问以下网址时收到此错误:http://127.0.0.1:9000/mypolls/anyerror
NoReverseMatch at /mypolls/anyerror
Reverse for 'mypolls' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: ['mypolls/(?P<error_message>.*)$']
我的 urls.py 包含:
from django.conf.urls import url
from . import views
urlpatterns=[
url(r'^$',views.home,name='home'),
url(r'^polls/$',views.list,name='list'),
url(r'^polls/(?P<pk>[0-9]+)$',views.detail,name='detail'),
url(r'^polls/(?P<pk>[0-9]+)/vote$',views.vote,name='vote'),
url(r'^mypolls/(?P<error_message>.*)$',views.mypolls,name='mypolls'),
url(r'^create/$',views.create,name='create'),
url(r'^polls/(?P<pk>[0-9]+)/edit$',views.edit,name='edit'),
url(r'^polls/(?P<pk>[0-9]+)/delete$',views.delete,name='delete'),
]
我的views.py包含:
def mypolls(request,error_message=None):
polls=Poll.objects.filter(author=request.user)
return render(request,'polls/list.html',{'polls':polls,'error_message':error_message})
这里出了什么问题?
我的 list.html 包含:
{% extends 'polls/base.html' %}
{% block content %}
{% if error_message %}
<p>{{error_message}}</p>
{% endif %}
{% for poll in polls %}
<li><a href='{% url "detail" pk=poll.pk %}'>{{ poll.question }}</a>
{% endfor %}
{% endblock %}
最佳答案
问题出在base.html 中。我没有在 base.html 中的 mypolls 的 url 中给出关键字参数。现在我已将网址设置为:
{% url "mypolls" error_message="" %}
并且运行良好。 感谢@Alasdair 和大家。
关于python - 无反向匹配 : Unable to set named group in URL in Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37975633/