我用途:
- DjangoCMS 2.4
- Django 1.5
- Python 2.7.3
我想检查一下我的占位符是否为空。
<div>
{% placeholder "my_placeholder" or %}
{% endplaceholder %}
</div>
如果占位符为空,我不希望创建占位符之间的html。
{% if placeholder "my_placeholder" %}
<div>
{% placeholder "my_placeholder" or %}
{% endplaceholder %}
</div>
{% endif %}
7条答案
按热度按时间igsr9ssn1#
如果您希望在占位符为空的情况下显示其他内容,请使用
or
参数和附加的{% endplaceholder %}
结束标记。如果占位符没有插件或插件不生成任何输出,则呈现{% placeholder "..." or %}
和{% endplaceholder %}
之间的所有内容。范例:
pftdvrlh2#
这里有一个非常紧凑的解决方案。
模板过滤器:
模板中的用法:
wb1gzix03#
根据您尝试实现的目标,如果没有内容,您可以使用:empty选择器简单地使用CSS隐藏元素。如果你担心白色空格,你可以使用Django的内置模板标签{% spaceless %}来删除它们。
你会得到这个模板:
这个CSS:
不完全是什么要求,因为它不删除HTML -但这将解决最常见的情况下,一个人想检查如果一个地方保持器是空的,并不需要引入一个新的模板标记。
olhwl3o24#
2023更新
https://stackoverflow.com/a/17148137/5322302与最新的DjangoCMS有问题。
更新的解决方案(F.B. DjangoCMS社区)。
使用Django CMS 4进行测试。
模板标签的代码
.../templatetags/get_placeholder.py
bihw5rsg5#
基于@Philip Zedler的伟大答案表单,这是一个既适用于django-cms页面上的占位符,也适用于“cms之外”的占位符的解决方案。
模板中的用法
在我的djangocms-misc包里
vddsk6oq6#
我采用了额外的紧凑型解决方案here,并创建了一个templatetag,用于检查static占位符是否为非空:
它的用法是这样的:
nkoocmlb7#
目前在django-cms中还没有内置的方法来做到这一点,所以你必须编写一个自定义模板标签。在
django-cms
Google Group上有一些关于这个问题的旧讨论:基于第一次讨论中的代码,我整理了以下要点:
我是这样用的: