【发布时间】:2017-11-26 08:06:58
【问题描述】:
我无法弄清楚我的代码是如何工作的,试图在 /blog/ 上显示 post_detail.html、NoReverseMatch 未找到带有参数“(2,)”和关键字参数“{}”的“post_detail”的反向操作。尝试了 1 种模式:['blog/$post/(?P\d+)/$']
这是我的代码: blog.views.py
def post_list(request):
posts =Post.objects.filter(published_date__lte=timezone.now()).order_by('-published_date')
return render(request, 'blog/post_list.html', {'posts':posts})
def post_detail(request, post_pk):
post = Post.objects.get(pk=post_pk)
return render(request, 'blog/post_detail.html', {'post': post})
blog.urls.py
app_name='blog'
urlpatterns = [
url(r'^$', views.post_list, name='post_list'),
url(r'^post/(?P<post_pk>\d+)/$', views.post_detail, name='post_detail'),
]
urls.py
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/$', include(blog_urls, namespace='blog')),
]
post_list.html
{% 扩展 'blog/base.html' %}
{% 块内容 %}
{% for post in posts %}
< -- here is the error
<h1><a href="{% url 'blog:post_detail' post.pk %}">{{post.title}}</a></h1>
<p>published by: {{ post.published_date }}</p>
<p>{{post.author}}</p>
<p>{{post.text|linebreaksbr}}</p>
{% endfor %}
{% endblock%}
【问题讨论】: