Использование тегов-заместителей в страницах 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
здесь