我想要一个类似这样的网址:
/(category)/(post-slug)
在链接上,这就是我所拥有的:
{% url blog.category blog.slug %}
和url.py:
url(r'^(I DON"T KNOW WHAT TO PUT ON THIS PART TO GET THE CATEGORY)/(?P<slug>[0-9A-Za-z._%+-]+)', views.post, name='post'),
感谢
编辑: 这就是我现在拥有的: 在/
仍然有NoReverseMatch错误urls.py
url(r'^(?P<category>[0-9A-Za-z._%+-]+)/(?P<slug>[0-9A-Za-z._%+-]+)$', views.post, name='post'),
的index.html
<a href="{% url blog.category blog.slug %}">
views.py
def post(request, slug, category):
try:
blog = Blog.objects.get(slug=slug)
except Blog.DoesNotExist:
raise Http404('This post does not exist')
return render(request, 'parts/post.html', {
'blog': blog,
})
答案 0 :(得分:2)
首先,您的URL标记需要您正在反转的模式的名称作为第一个参数:
{% url 'post' blog.category blog.slug %}
或者如果您使用的是名称空间,请执行以下操作:
{% url 'blog:post' blog.category blog.slug %}
您还没有显示您的观点或模型,因此我们只能猜测您的网址格式应该是什么。我不确定为什么你觉得这个类别让人感到困惑 - 你只需要选择一个组的名称(例如category_slug
),以及该组的正则表达式(你可以使用相同的名称)你用于slug
)。那会给你:
url(r'^(?P<category_slug>[0-9A-Za-z._%+-]+)/(?P<slug>[0-9A-Za-z._%+-]+)$'
请注意,正则表达式的结尾应该有一美元。