1

我制作了一个简单的模板标签来列出 django-cms 站点中的子页面。除了我无法在模板标签本身中呈现子页面占位符之外,它工作正常。

以下是我的模板标签代码。

子页面.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}

子页面.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* 的替代方案,但没有运气。

如何正确渲染占位符?

4

1 回答 1

0

这只是一个(未经测试的)建议,但请尝试将上下文传递给模板:

@register.inclusion_tag('subpages.html', takes_context = True)
def get_news_items( context ):
    request = context['request']
    subpages = request.current_page.children.filter(published=True)
    context.update({'subpages':subpages})
    return context
于 2013-10-10T16:59:42.437 回答