Я создал простой тег шаблона для отображения дочерних страниц на сайте django-cms. Он отлично работает, за исключением того факта, что я не смог отобразить тег-листы дочерних страниц в самом теге шаблона.Как сделать placeholders из django-cms custom templatetag?
Следующий мой код для тега шаблона.
subpages.py
from cms.models import Page
from cms.utils.page_resolver import get_page_from_path
from django import template
register = template.Library()
@register.inclusion_tag('subpages.html', takes_context = True)
def get_news_items(context):
request = context['request']
subpages = request.current_page.children.filter(published=True)
return {'subpages':subpages}
subpages.html
{% load cms_tags menu_tags placeholder_tags %}
<ul>
{% for item in subpages %}
<li><a href="/{{ item.get_path }}">{{ item.get_title }}</a>
{% render_placeholder subtitle %}
</li>
{% endfor %}
</ul>
Я попробовал несколько альтернатив * render_placeholder *, но без удачи.
Каким будет правильный способ получения закладок?
{% render_placeholder [заполнитель]%} рассчитывает получить экземпляр шаблонного. Я предполагаю, что 'subtitle' не правильный тип. – Brandon
Подзаголовок: как мой заполнитель указан на дочерней странице, что вы подразумеваете под правильным типом? В моем шаблоне для страницы у меня есть: {% placeholder subtitle%}, и он работает. –
Насколько я знаю, вы не можете отобразить местозаполнитель по имени, вы должны передать '{% render_placeholder%}' экземпляр-заполнитель, как поле заполнителя на модели. См.: Http://docs.django-cms.org/en/2.4.2/extending_cms/placeholders.html#templates – Brandon