Django:/'myapp'中的NoReverseMatch不是注册名称空间

时间:2018-01-09 05:00:11

标签: python django django-forms django-views

我在模板渲染过程中遇到此错误。我要做的是允许用户上传csv然后将数据处理成模型。

第109行的

错误 'myapp'不是注册名称空间

这是我的第109行代码<​​/ p>

<form action="{% url "myapp:upload_csv" %}" method="POST" enctype="multipart/form-data" class="form-horizontal"> 

urite.py in mysite

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'', include('anomaly.urls')),
]

异常中的urls.py

urlpatterns = [
    url(r'^$', views.post_list, name='post_list'),
    url(r'^upload/csv/$', views.upload_csv, name='upload_csv'),
]

4 个答案:

答案 0 :(得分:2)

试试这个 在mysite中的urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('anomaly.urls',namespace='anomaly'))

要使用命名空间限定URL名称,请使用语法'namespace:name'

<form action="{% url 'anomaly:upload_csv' %}" method="POST" enctype="multipart/form-data" class="form-horizontal"> 

答案 1 :(得分:1)

您的应用名称为anomaly。你应该这样写

<form action="{% url "anomaly:upload_csv" %}" method="POST" enctype="multipart/form-data" class="form-horizontal"> 

答案 2 :(得分:1)

您似乎已切换到Django 2.0这是Django新版本所包含的更改之一。
转到您的应用异常的urls.py并添加app_name = "anomaly"。所以你的urls.py文件就像

    app_name = "anomaly"

    urlpatterns = [
    url(r'^$', views.post_list, name='post_list'),
    url(r'^upload/csv/$', views.upload_csv, name='upload_csv'),
]

答案 3 :(得分:0)

在将网站升级到最新版本的Django时,我遇到过很多次。

创建一个新应用程序将创建一个名为apps.py的文件,如下所示:

from django.apps import AppConfig

    class MyappConfig(AppConfig):
        name = 'myapp'

我通常会将此文件添加到正在更新的项目中的所有应用程序。替换为应用名称,然后将此app_name = MyappConfig.name添加到应用的urls.py

您可以找到有关配置应用here in the Django Docs

的更多信息