我正在试图在浏览器上运行与django
的博客版本。而我得到这个错误:运行Django时,'Reverse'是什么意思?
NoReverseMatch at/
Reverse for 'blog.views.post_detail' not found.
'blog.views.post_detail' is not a valid view function or pattern name.
我url.py我的应用程序的样子:
from django.conf.urls import include, url
from . import views
urlpatterns = [
url(r'^$', views.post_list),
url(r'^post/(?P<pk>[0-9]+)/$', views.post_detail),
]
看来,当我键入127.0.0.1:8000/。
该网址将指向views.post_list
。
而我views.py样子:
from django.shortcuts import render, get_object_or_404
from .models import Post
def post_list(request):
posts = Post.objects.filter(published_date__isnull=False)
return render(request, 'blog/post_list.html', {'posts': posts}
def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
return render(request, 'blog/post_detail.html', {'post': post})
post_list()
将呈现与post_list.html请求。
里面post_list.html,错误来自行:
<h1><a href="{% url 'blog.views.post_detail' pk=post.pk %}">{{ post.title }}</a></h1>
我真的不明白“反向”是指在错误消息。 'blog.views.post_detail'确实存在于views.py。我想我得到了代码所需的一切,但无法弄清楚哪里出了问题。
我是新来的django,抱歉,如果问题是基本的,谢谢回答!
也许看看[此帖](https://开头stackoverflow.com/questions/43453368/noreversematch-at-product-pussyes-reverse-for-basket-adding-not-found-bask) – PRMoureu
你在哪里定义你想链接到的post_detail的URL? –