2017-06-22 61 views
2

我無法弄清楚我的代碼不工作,試圖顯示post_detail.html,NoReverseMatch在/ blog/ 反向'post_detail'與參數'(2,) '和關鍵字參數'{}'未找到。 1種模式(S)嘗試:[ '博客/ $柱/(P \ d +)/ $']如何解決NoReverseMatch在/博客/ Django 1.8 Url

這裏我的代碼: 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}) 

博客。 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

{% '延伸博客/ 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 %} 

{%末端嵌段%}

回答

0

include的url中刪除正則表達式結束符匹配字符$

url(r'^blog/', include(blog_urls, namespace='blog')), 
#   ^

這恰好是一個預期的錯誤Django的文件建立提到它:

注意,在這個例子中,正則表達式沒有$ 一個(結束的字符串匹配字符),但包括一個尾隨斜線。 每當Django遇到include()django.conf.urls.include()) 它砍掉任何匹配到該點和 URL的一部分發送所述剩餘的字符串所包含的的URLconf用於進一步處理 。

+0

感謝您的幫助和信息先生,我一直在徘徊3個小時左右, – Fatkur