NoReverseMatch错误 - Django

时间:2018-02-09 09:25:36

标签: python django django-forms

我正在尝试使用多个应用程序构建一个Django项目,因此对每个应用程序使用urls.py。当Django尝试访问视图时遇到NoReverseMatch错误。

主要 urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^intface/', intface),
    url(r'^', include("userapp.urls", namespace="userapp")),
]

userapp/urls.py

urlpatterns = [
    url(r'^user/', TemplateView.as_view(template_name="user.html"))
]

user.html

<form method="POST" action="{% url "userapp:user" %}" >

错误:

NoReverseMatch at /user/

Reverse for 'user' not found.
'user' is not a valid view function or pattern name.

请帮忙!

2 个答案:

答案 0 :(得分:3)

userapp urls.py(添加名称):

urlpatterns=[
    url(r'^user/', TemplateView.as_view(template_name="user.html"), name='user')
]

答案 1 :(得分:1)

<form method="POST" action="{% url "userapp:user" %}" >

在上面的行中,当您说userapp:user时,它表示命名空间= userapp和url_name = user。

通过在以下行中设置命名空间,您已做了一件事:

url(r'^', include("userapp.urls", namespace="userapp")),

但您还没有在此行中设置url_name:

url(r'^user/', TemplateView.as_view(template_name="user.html"))

因此,请将上一行更改为以下行,以设置网址名称:

url(r'^user/', TemplateView.as_view(template_name="user.html"), name="user")

现在你的错误应该消失。