我无法将我的问题写成一句话。 我正在按照教程从头开始制作博客。但该教程预测将所有类别,标签,月份和年份列表分别放在单独的模板中。
我想在主要博客页面上添加类别列表,月份和年份列表。
所以这就是我得到的。使用此代码,类别列表将显示在主页面中,但仅限于您访问博客/类别URL,而不是仅仅位于博客/我想要的位置。
**(r'^$', list),**
(r'^archive/(\d{1,2})/$', list),
(r'^\d{2}/d{4}/$', month),
(r'^([0-9]{4}/\d{1,2})/(?P<slug>.*)/$', detail),
(r'^(?P<year>\d{4})/$', year),
**(r'^category/$', category),**
我也尝试过:
(r'^$', category),
但没有运气。
这与category.html和list.html中的模板相同:
{% if categories %}
{% for category in categories %}
<li class="cat-item"><a href="category/{{ category.name.lower }}/"
title="{{ category.name.capitalize }}">
{{ category.name.capitalize }}</a>
</li>
{% endfor %}
{% endif %}
Views.py:
def category(request):
return render_to_response('blog/list.html', {'categories':Category.objects.all(),},)
就是这样。我尝试了这个,但在def列表中没有运气:
return render_to_response('blog/list.html',{'posts':posts,
'next':next,
'previous':previous,
'categories':Category.objects.all(),
},)
如何在博客上显示博客/类别上的节目? 感谢。
答案 0 :(得分:0)
在浏览器中键入网址时,会向您的服务器发送请求。然后Django获取url并将其与url模式匹配以确定正确的视图。一旦发现视图,django就会停止匹配并执行此视图,而该视图又会返回响应。
如果您想在不同的视图中使用您的类别,您必须确保在每个视图中为模板提供相同的categories
上下文变量,或者通常情况要好得多,{{3} }。对于您的类别,这可能如下所示:
@register.inclusion_tag('blog/category_list.html')
def categories_list():
return { 'categories': Category.objects.all() }
在'blog / categoy_list.html'文件中,然后是'categories.html'和'list.html'中的代码。在这些文件中将其替换为。
{% load your_blog_tags %}
{% categories_list %}
您可以在任何需要类别列表的地方使用它。当然,这同样适用于年月和月份列表。