我创建了一个非常简单的博客,但遇到了几个 URL 问题。对于我的标签和特定帖子视图,我遇到了以下问题。
具体的帖子视图示例
这两个站点呈现相同的内容,并希望第二个站点呈现 404。
website.com/post/1/hello-world
website.com/post/1/hello-world/non-sense (应该渲染 404)
标记查看
website.com/tag/python:这将呈现所有标记为 python 的帖子,很棒。但是...
website.com/tag/python/party:这将呈现所有标记为“python/party”的帖子,而不是呈现 404。
这是我的 URL 模式设置,因此您可以查看。
url(r'^post/(?P<pk>\d+)/(?P<post_title>)', DetailView.as_view(
model = post,
template_name = "post.html")),
url(r'^post/$', ListView.as_view(
queryset = post.objects.all().order_by("-date"),
template_name = "archives.html")),
url(r'^archives/$', ListView.as_view(
queryset = post.objects.all().order_by("-date"),
template_name = "archives.html")),
url(r'^tag/(?P<tag>[\w|\W]+)', 'tags'),
标签的更新解决方案:
url(r'^tag/(?P<tag>[\w]+)\W*/$', 'tags'),
帖子解决方案:
url(r'^post/(?P<pk>\d+)/(?P<post_url>[\w-]+)/$', DetailView.as_view(
model = post,
template_name = "post.html")),
感谢 Huckleberry Finn 和 krakax 的所有帮助!