Подтвердить что ты не робот

Как вставить шаблон в другой шаблон?

У меня есть очень простой шаблон (basic_template.html) и хочу заполнить данные, отформатированные с использованием другого частичного шаблона. Файл basic_template.html может содержать несколько элементов, отформатированных с использованием частичного шаблона.

Как я должен структурировать код в views.py?

Причина, по которой я делаю это, - это то, что позже будет заполнено с помощью Ajax. Правильно ли я делаю это?

4b9b3361

Ответ 1

Вы можете сделать:

<div class="basic">
{% include "main/includes/subtemplate.html" %}    
</div>

где subtemplate.html - еще один шаблон Django. В этом subtemplate.html вы можете поместить HTML-код, который будет получен с помощью Ajax.

Вы также можете включить шаблон несколько раз:

<div class="basic">
{% for item in items %}
    {% include "main/includes/subtemplate.html" %}    
{% endfor %}
</div>

Ответ 2

Вы можете сделать это, используя блок .. Блоки - это тег шаблона Django, который переопределит разделы шаблона, который вы расширяете. Я включил пример ниже.

basic_template.html

<body>
{% block 'body' %}
{% endblock %}
</body>

шаблон, который вы хотите включить: (например, example.html)

{% extends 'basic_template.html' %} 
{% block 'body' %}
/* HTML goes here */
{% endblock %}

views.py

return render_to_response(template='example.html', context, context_instance)

Выполнение этого будет загружено basic_template.html, но заменит все внутри {% block 'body' %} {% endblock %} на basic_template.html на все, что содержится в {% block 'body' %} {% endblock %}.

Вы можете больше узнать о блоках и наследовании шаблонов в Django Docs

Ответ 3

Я просто хотел добавить различия в расширении и включении. Оба шаблона и включить могут использовать модели, вставленные в текущее приложение. Шаблон предназначен для глобального использования любым вашим приложением. Включить для использования в определенных приложениях. Например: вы хотите вставить Image Slider на свою домашнюю страницу и о странице, но больше нигде. Для удобства вы можете создать приложение Slider со своей собственной моделью, импортировать ее модель и включить в нее страницы. Если бы вы использовали шаблон для этого примера, вы бы создали 2 шаблона, один со слайдером, а все остальное есть у другого шаблона.