Может решить эту ошибку? ( NoReverseMatch )
Я довольно сильно разбираюсь в django и не могу решить эту проблему,
ошибка: NoReverseMatch at /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
app_name= 'blog'
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)
<
{% for post in posts %}
\<a href="{% url 'blog:single' pid=post.pk %}"\>\<h3\>{{post.title}}\</h3\>\</a\>
\<p class="excert"\>
{{post.content}}
\</p\>
{% endfor %}
<
В вашем 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 решен. спасибо всем.