Как в шаблонах django пройтись циклом через несколько блоков?

Здравствуйте!
Прошу помочь, есть вот такой шаблон

Базовый шаблон
content.html

<h3>{% block post_title %}Some title{% endblock %}</h3>
							 <h4>{% block post_created_at %}Created by{% endblock %}</h4>
							 {% block short_description %}Short Desctiprtion{% endblock %}
							 {% block post_image %}Image{% endblock %}
							 <a class="bttn" href="{% block post_detail_url %}{% endblock %}">MORE</a>


От него наследуется:
{% extends 'content.html' %}



{% for p in posts %}


{% block post_title %}{{ p.title }}{% endblock %}

{% block post_created_at %}Дата создания: {{ p.created_at }}. Создал: {{ p.author }} {% endblock %}

{% block short_description %} {{ p.short_description }} {% endblock %}

{% block post_image %}{{ p.post_image }}{% endblock %}

{% block post_detail_url %} {% url 'blog:detail' p.slug %} {% endblock %}
{% endfor %}


При запуске дев сервера ничего не отображается. Если сделать вот так:
{% block post_title %} {% for p in posts %} {{ p.title }} {%endfor %} {% endblock %}

То работает, но решение явно не правильное.
  • Вопрос задан
  • 327 просмотров
Решения вопроса 1
sim3x
@sim3x
У тебя неправильное понимание наследования в темплейтах

От него наследуется:
{% extends '
тот файл не вставляется в content.html

Он забирает содержимое content.html и замещает содержимое блоков

Если тебе действительно нужно повторять кусок верстки
{{ p.title }}
Дата создания: {{ p.created_at }}. Создал: 
.....

то винеси его в p.html используй {% include "p.html" %} в content.html и других местах

{% block post %}
{% for p in posts %}
   {% include "p.html" %}
{% endfor%}
{% endblock %}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы