Django在urlconf中传递PK的问题

时间:2014-10-15 19:37:52

标签: python django django-templates blogs

我在博客上工作,我正在尝试从每篇博文中创建一条评论链接,该帖子将会显示一个页面,其中可以看到带有评论的个别帖子。

在我的" list.html"中列出了所有博客帖子,我为每篇博文都提供了此代码:

<div class="blogpost-comments"><a href="{% url 'post' post.id %}">Comments</a></div>

然后提交到我的URLconf,如下所示:

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    # ex: /post/5/     pk=5
    url(r'^post/(?P<pk>\d+)/$', views.post, name='post'),
)

在我的观点下方显示:

def post(request, pk):
    post = Post.objects.get(pk=pk)
    return render(request, 'blog/post.html', {'post': post, 'user': request.user})

我想拥有网址结构:

 /blog/post/{pk}/ 

访问个别帖子。出于某种原因,我目前收到错误:

NoReverseMatch at /blog
Reverse for 'post' with arguments '(6L,)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['blog$post/(?P<pk>\\d+)/$']

我不明白。有人可以帮忙吗?

编辑:

主要的urls.py如下:

from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',

    url(r'^blog/$', include('blog.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

1 个答案:

答案 0 :(得分:4)

中删除$
url(r'^blog/$', include('blog.urls')),

所以它是

url(r'^blog/', include('blog.urls')),

您实际上并未包含您的博客网址,因为正则表达式停靠在$