簡體   English   中英

可以解決這個錯誤嗎? (無反向匹配)

[英]can solve this error ? ( NoReverseMatch )

我對 django 比較陌生,無法解決這個問題,

錯誤:/blog/ 上的 NoReverseMatch

Reverse for 'single' with keyword arguments '{'pid': ''}' not found. 1 pattern(s) tried: \['blog/(?P\<pid\>\[0-9\]+)\\Z'\]

網址.py:

from django.urls import path
from blog.views import \*
from django.conf.urls.static import static

app_name='博客'

urlpatterns = \[
path('',home,name='home'),
path('\<int:pid\>',single, name='single'),
\]

意見.py:

from django.shortcuts import render
from blog.models import Post
import datetime

def single(request,pid):
single_post= Post.objects.filter(pk=pid)  
def counting_single_views(n):
n.counted_views += 1
n.save()
counting_single_views(single_post)
context = {'single_post':single_post}
return render(request,'blog/blog-single.html',context)

定義主頁(請求):

now = datetime.datetime.now()
posts= Post.objects.filter(published_date__lte= now)
context={'posts':posts}
return render(request,'blog/blog-home.html',context)

博客主頁.html:

{% for post in posts %}
\<a href="{% url 'blog:single' pid=post.pk %}"\>\<h3\>{{post.title}}\</h3\>\</a\>
\<p class="excert"\>
{{post.content}}
\</p\>
{% endfor %}

我嘗試使用 id 而不是 pk,但沒有什么不同,

在您的 url 文件中

path('\<int:pid\>',single, name='single'),

替換為

path('<int:pid>',single, name='single'),

還要注意 [#Manoj Kamble] 點也可能發生

我得到了答案,事實上我沒有更改任何 url 標簽,我使用

 {% url 'blog:single' pid=post.pk %}

但在“base.html”中使用

{% url 'blog:single' %} 

我改變了這個並且 NoReverseMatch 解決了。 謝謝大家。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM