首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoReverseMatch中的/polls/top/ 'polls‘不是已注册的命名空间

NoReverseMatch中的/polls/top/ 'polls‘不是已注册的命名空间
EN

Stack Overflow用户
提问于 2018-03-25 09:49:48
回答 1查看 123关注 0票数 0

父应用名称为mysite,子应用名称为polls。我用views.py写的

代码语言:javascript
复制
from django.shortcuts import render

from .models import Polls
def top(request):
    data = Polls.objects.order_by('-created_at')
    return render(request,'index.html',{'data':data})

def detail(request):
    data = Polls.objects.order_by('-created_at')
    return render(request,'detail.html',{'data':data})

在子应用的urls.py中

代码语言:javascript
复制
from django.conf.urls import url
from django.conf import settings
from django.conf.urls.static import static
from . import views

urlpatterns=[
    url('top/', views.top, name='top'),
    url('detail/<int:pk>/', views.top,name='detail'),
]

在父应用的urls.py中

代码语言:javascript
复制
from django.contrib import admin
from django.conf.urls import url,include

app_name = 'polls'
urlpatterns = [
    url('admin/', admin.site.urls),
    url('polls/', include('polls.urls')),
]

在index.html中

代码语言:javascript
复制
<main>
            {% for item in data %}
                            <h2>{{ item.title }}</h2>
                            <a href="{% url 'polls:detail' item.pk %}">SHOW DETAIL
</a>

            {% endfor %}
</main>

当我访问top方法时,在/ NoReverseMatch /top/ 'polls‘处的投票不是一个注册的名称空间错误。我使用的是Django 2.0,所以我认为名称空间不能使用。我写了app_name,所以我真的不能理解为什么要修复这个错误happens.How ?我的代码中有什么问题?

EN

回答 1

Stack Overflow用户

发布于 2018-03-25 13:18:15

var app_name应该在polls.urls中,而不是在urls.py父文件中。另外,如果您想使用Django提供的新路由,请记住添加path模块:

代码语言:javascript
复制
from django.urls import path
path('detail/<int:pk>/', views.top,name='detail'),

如果您使用的是url模块,请检查此选项,并注意您使用的https://docs.djangoproject.com/en/2.0/topics/http/urls/的版本

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49471763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档