Шаблон отдельной темы

We use cookies. Read the Privacy and Cookie Policy

В шаблоне должно отображаться название темы и текст записей. Также необходимо сообщить пользователю, если по теме еще не было сделано ни одной записи:

topic.html

{% extends 'learning_logs/base.html' %}

{% block content %}

(1) <p>Topic: {{ topic }}</p>

<p>Entries:</p>

(2) <ul>

(3) {% for entry in entries %}

. .<li>

(4) . . <p>{{ entry.date_added|date:'M d, Y H:i' }}</p>

(5) . . <p>{{ entry.text|linebreaks }}</p>

. .</li>

? {% empty %}

. .<li>

. . There are no entries for this topic yet.

. .</li>

{% endfor %}

</ul>

{% endblock content %}

Шаблон расширяет base.html, как и для всех страниц проекта. Затем выводится текущая тема (1) из шаблонной переменной {{ topic }}. Переменная topic доступна, потому что она включена в словарь context. Затем создается маркированный список со всеми записями по теме (2); перебор записей осуществляется так же, как это делалось ранее для тем (3).

С каждым элементом списка связываются два значения: временна?я метка и полный текст каждой записи. Для временнуй метки (4) выводится значение атрибута date_added. В шаблонах Django вертикальная черта (|) представляет фильтр — функцию, изменяющую значение шаблонной переменной. Фильтр date:'M d, Y H:i' выводит временны?е метки в формате January 1, 2015 23:00. Следующая строка выводит полное значение text (вместо первых 50 символов каждой записи). Фильтр linebreaks (5) следит за тем, чтобы длинный текст содержал разрывы строк в формате, поддерживаемом браузером (вместо блока непрерывного текста). В точке ? шаблонный тег {% empty %} используется для вывода сообщения об отсутствии записей.