Использование тегов-заместителей в страницах CMS, не относящихся к django

В Django CMS есть {% placeholder 'content' %}. Я попытался использовать его на странице, не относящейся к Django-Cms, т.е. на странице детального просмотра, которая приходит из apphook. Однако, когда я переключаюсь на представление структуры на странице detail-view, и placeholder, кажется, не отражается. Это так и должно работать или проблема в моем коде? Если это то, как это должно работать, есть ли способ заставить placeholder отображаться на странице?

Вы не можете использовать {% placeholder вне страниц CMS.

Если вы находитесь на одной из этих страниц, вы можете использовать статический заполнитель. Они будут отображать одно и то же содержимое на любой странице, где существует статический заполнитель с таким же именем. Хороший пример - нижний или верхний колонтитул, который должен быть одинаковым на всех страницах;

{% static_placeholder "footer" %}

Другая вещь, которую вы можете использовать, хорошо подходящая для вашего примера детальной страницы в apphook, это PlaceholderField на ваших моделях.

Возьмем этот пример;

from django.db import models
from cms.models.fields import PlaceholderField


class Category(models.Model):
    name = models.CharField(max_length=20)
    description = PlaceholderField('category_description')

В своем шаблоне вы можете отобразить этот заполнитель, и он будет вести себя как обычный заполнитель на странице cms;

{% load cms_tags %}

{% render_placeholder category_instance.description language 'en' %}

Вы можете найти документацию для PlaceholderField здесь

Вернуться на верх