django 如何傳遞位置參數PK跳轉頁面(NoReverseMatch at / Reverse for 'post.views.blog' not found. 等問題解決)

問題一: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>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章