django 是否可以解决此错误?(NoReverseMatch)

epfja78i  于 2023-01-27  发布在  Go
关注(0)|答案(2)|浏览(151)

我在django很业余,不能解决这个问题,
错误:/blog/上没有反向匹配

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

urls.py :

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

应用程序名称='博客'

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

views.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,但是没有差别,

ctehm74n

ctehm74n1#

在您的url文件中

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

将其替换为

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

并注意到[#Manoj Kamble]点也可能发生

bz4sfanl

bz4sfanl2#

我得到了我的答案,事实上我没有改变任何的网址标签,我用

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

但在“base.html”中使用

{% url 'blog:single' %}

我改变了这个,NoReverseMatch解决了。谢谢大家。

相关问题