【发布时间】:2016-05-19 13:46:41
【问题描述】:
我正在用 Django 构建博客并意识到我的模板:博客主页可以使用与单个博客相同的格式显示所有单独的帖子,唯一的区别是文本将被截断以进行摘要。
所以我所做的是定义一个模板来显示我将包含在主页模板中的博客:
{# blog/post_snippet.html #}
{% block content %}
<h1> {{ post.title }} </h1>
{% if post.author %}
<h4>By {{ post.author.short_name }}</h4>
{% endif %}
{% if post.date_published %}
<span>On {{ post.date_published }}</span>
{% endif %}
<p> {{ post.text | safe }} </p>
{% endblock %}
这会在“所有帖子”页面的 for 循环中使用:
{% block content %}
{% for post in posts %}
{% include 'blog/post_snippet.html' %}
{% endfor %}
{% endblock %}
现在的问题是,当显示所有帖子时,我如何告诉模板系统截断博客文本?一种解决方案是复制模板代码,但我不想这样做。我也想过继承,但是我的模板已经继承了基础模板,而且我认为继承会立即插入所有内容,所以我无法控制块的位置??
实际上,我很困惑。这里的最佳做法是什么?
【问题讨论】:
-
只需使用 create 2 sn-ps
post_sinppet.html和short_post_snippet.html。我不记得有其他方式。