我正在Django开发一个简单的博客应用程序,我很难弄清楚如何在侧边栏中动态生成最近的五篇文章。我的每个视图都是基于类的,它们扩展了一个通用模板,每个视图映射到一个模板,我相信这是正确的方法。我一直在寻找一种使用模板标签的方法,但是Django似乎不喜欢你在模板中加入任何逻辑。你知道吗
我认为问题是,我希望这个存在于我的生活中基本.html因为我想把最近的帖子显示在整个网站上,所以一个视图应该映射到你的网站吗基本.html或者这会引起问题,我对这个很陌生。我不知道如何处理这个问题,我是否应该为这个问题创建一个新的视图基本.html或者我是否应该使用我的模板标签,或者我是否应该扩展一个现有的视图(但是如果我这样做,它将不会是站点范围的?)。你知道吗
我基本上想要以下内容(它们是按时间倒序排列的)
{% for post in post_list[:4] %}
<a href="{{ post.get_absolute_url }}"> {{ post.title }} </a>
{% endfor %}
你可以使用模板标签。更具体地说,inclusion tag是您所需要的。这允许您通过一个小视图(如一段代码)在模板中的任何位置插入呈现的代码段。你知道吗
例如,在
blog
应用程序中创建templatetags/blog_tags.py
文件(在应用程序中创建templatetags
文件夹很重要;Django默认情况下在此处搜索这些文件夹),并添加以下内容:现在创建一个
blog/snippets/recent_posts.html
模板(它可以在任何地方,只要它符合上面的@register.inclusion_tag(...)
):最后,在原始模板中,现在可以呈现模板标记:
相关问题 更多 >
编程相关推荐