簡體   English   中英

如何從django-cms自定義templatetag渲染占位符?

[英]How to render placeholders from a django-cms custom templatetag?

我已經做了一個簡單的模板標簽來列出django-cms網站中的子頁面。 除我無法在模板標記本身中呈現子頁面占位符的事實外,它工作正常。

以下是我的模板標記代碼。

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 *的方法,但是沒有運氣。

如何獲得占位符的正確方法?

這只是(未試用的)建議,但請嘗試將上下文傳遞給模板:

@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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM