我正在学习Django教程。由于Django版本不同,我遇到了这个问题,我无法解决它。提前谢谢
NoReverseMatch at /blog/
'blog' is not a registered namespace
Request Method: GET
Request URL: http://127.0.0.1:8000/blog/
Django Version: 2.0.5
Exception Type: NoReverseMatch
Exception Value:
'blog' is not a registered namespace
Exception Location: /Users/sumeixu/anaconda3/lib/python3.6/site-packages/django/urls/base.py in reverse, line 84
Python Executable: /Users/sumeixu/anaconda3/bin/python
Python Version: 3.6.3
Python Path:
['/Users/sumeixu/djangotest',
'/Users/sumeixu/anaconda3/lib/python36.zip',
'/Users/sumeixu/anaconda3/lib/python3.6',
'/Users/sumeixu/anaconda3/lib/python3.6/lib-dynload',
'/Users/sumeixu/anaconda3/lib/python3.6/site-packages',
'/Users/sumeixu/anaconda3/lib/python3.6/site-packages/aeosa']
Server time: Thu, 7 Jun 2018 14:32:43 +0000
博客/网址.py地址:
from django.conf.urls import url
from django.urls import path
from . import views
urlpatterns =[
path('', views.list_of_post,name='list_of_post'),
path('<slug:slug>/', views.list_of_post,name='post_detail')
]
你知道吗网址.py你知道吗
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls'),name='blog'),
]
你知道吗视图.py你知道吗
def post_detail(request,slug):
post = get_object_or_404(Post,slug=slug)
template = 'blog/post/post_detail.html'
return render(request,template,{'post':post})
从
include
中删除namespace
/name
:然后在
blog/urls.py
中设置app_name
:您可以在Django 1.9 release notes中阅读有关此更改的更多信息。从Django 2.0开始,除非设置了
app_name
,否则不能在include
中设置namespace
。你知道吗相关问题 更多 >
编程相关推荐