РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pydjPmLyIO 66 of 187 menu

Параметр only у include в Django

По умолчанию во вложенный шаблон попадают все переменные родительского шаблона. Иногда это не нужно: подключаемый блок должен видеть только свои данные.

Пусть из представления приходит несколько переменных:

def page(request): return render(request, 'page.html', { 'products': ['a', 'b', 'c'], 'title': 'shop', 'user': 'john', })

Если подключить шаблон просто так, в products.html будут доступны и products, и title, и user:

{% include 'products.html' %}

Чтобы ограничить набор переменных, используют параметр only. Тогда во вложенный шаблон попадут только те данные, которые указаны в with.

Давайте передадим только список товаров:

{% include 'products.html' with products=products only %}

В products.html теперь есть только products. Переменных title и user там уже нет:

<ul> {% for product in products %} <li>{{ product }}</li> {% endfor %} </ul>

В браузере отобразится:

<ul> <li>a</li> <li>b</li> <li>c</li> </ul>

Пусть из представления в шаблон передается следующее:

context = { 'products': ['a', 'b', 'c'], 'title': 'shop', }

Передайте в подключаемый шаблон только переменную products с использованием only.

Пусть из представления в шаблон передается следующее:

context = { 'items': ['a', 'b'], 'user': 'john', }

Подключите шаблон через include и передайте только items.

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить