Я создаю блог в Django и кое-что понял о своих шаблонах: домашняя страница блога может отображать все отдельные сообщения, используя тот же формат, что и один блог, с той лишь разницей, что текст будет быть усеченным для сводки.Django truncate blog summary puzzle
Так что я сделал определить шаблон для отображения блога, который я бы включить в шаблон главной страницы:
{# 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 %}
И это привыкает внутри для цикла на странице «все сообщения»:
{% block content %}
{% for post in posts %}
{% include 'blog/post_snippet.html' %}
{% endfor %}
{% endblock %}
Проблема при отображении всех сообщений, как сообщить системе шаблонов об усечении текста блога? Одним из решений является дублирование кода шаблона, но я не хочу этого делать. Я также думал о наследовании, но мои шаблоны уже наследуются от базового шаблона, плюс я думаю, что наследование сразу введет весь контент, и поэтому я не смогу контролировать размещение блоков ??
Я совершенно смущен, на самом деле. Какая здесь самая лучшая практика?
Просто используйте create 2 snippets ' post_sinppet.html' и 'short_post_snippet.html'. Другого способа я не помню. –