問題一:NoReverseMatch at /
Reverse for 'post.views.blog' not found. 'post.views.blog' is not a valid view function or pattern name
問題二:NoReverseMatch at /
NameError at /detail/post-1/ name 'post' is not defined
一、主app(Mysite)下
url.py
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path(r'', include('Post.urls',namespace="Post")),#主要注意這個
]
二、自己建立的app(Post)
url.py
from django.conf.urls import *
from . import views
app_name = 'Post' # 這裏是爲了url反向解析用
urlpatterns = [
url(r'^$', views.index, name="index"),
url(r'^detail/post-(?P<pk>[0-9]+)/$', views.detail,name="detail"),#注意views,name後面跟的數值
]
views.py
from django.shortcuts import render, get_object_or_404
def detail(request, pk):
"""
:param request:
:param pk: 接收到的文章的主鍵id
:return:
"""
return render(request, 'Post/blog.html',{'post':detail}) #注意{'post':detail}中冒號後邊的值
html中的跳轉的鏈接(注意url後面跟的'Post:detail'),Post是app名稱detail是views.py中的detail函數
<a href="{% url 'Post:detail' pk=post.pk %}">Read more </a>