python - 无反向匹配 : Unable to set named group in URL in Django

标签 python regex django

我在访问以下网址时收到此错误: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/

相关文章:

java - 使用正则表达式获取子字符串

python - Django 使用小部件创建一个只读的表单字段

python - django_crontab 不适用于生产 docker

python - 在 Cython 中使用 C 创建的一组列表比纯 Python 慢得多 - 为什么?

java - 如何删除两个外部字符之间的所有内容?

java - 正则表达式仅允许数字、字母、空格和连字符 - Java

python - “图像”对象没有属性 '_committed'

python - Django-Rest-Framework:我可以使用两种不同的方法(具有相同的 url_path 但不同的请求方法)创建 View 集吗?

python - 测试发布请求时 Django 消息中间件问题

python - 如何在 Django 中使用新数据库重新开始?