2024-10-01 04:51:19 发布
网友
我使用:
我想检查我的占位符是否为空。在
<div> {% placeholder "my_placeholder" or %} {% endplaceholder %} </div>
如果占位符为空,我不希望在占位符之间创建html。在
目前在django cms中还没有内置的方法来实现这一点,所以您必须编写一个自定义的模板标记。在django-cms谷歌群组上有一些关于这个的老讨论:
django-cms
根据第一次讨论中的代码,我总结出以下要点:
我是这样用的:
{% load extra_cms_tags %} {% get_placeholder "My Placeholder" as my_placeholder %} {% if my_placeholder %} <div> {{ my_placeholder }} </div> {% endif %}
这是一个非常紧凑的解决方案。在
模板筛选器:
@register.filter('placeholder_is_empty') def placeholder_is_empty(request, slot): page = request.current_page placeholder = page.placeholders.get(slot=slot) return placeholder.cmsplugin_set.exists()
模板中的用法:
如果希望在占位符为空时显示其他内容,请使用or参数和一个附加的{% endplaceholder %}结束标记。如果占位符没有插件或插件不生成任何输出,则呈现{% placeholder "..." or %}和{}之间的所有内容。在
or
{% endplaceholder %}
{% placeholder "..." or %}
示例:
{% placeholder "content" or %} There is no content. {% endplaceholder %}
目前在django cms中还没有内置的方法来实现这一点,所以您必须编写一个自定义的模板标记。在
django-cms
谷歌群组上有一些关于这个的老讨论:根据第一次讨论中的代码,我总结出以下要点:
我是这样用的:
这是一个非常紧凑的解决方案。在
模板筛选器:
模板中的用法:
^{pr2}$如果希望在占位符为空时显示其他内容,请使用}之间的所有内容。在
or
参数和一个附加的{% endplaceholder %}
结束标记。如果占位符没有插件或插件不生成任何输出,则呈现{% placeholder "..." or %}
和{示例:
相关问题 更多 >
编程相关推荐