我用:DjangoCMS 2.4Django 1.5.1Python 2.7.3我想检查我的占位符是否为空。<div> {% placeholder "my_placeholder" or %} {% endplaceholder %}</div>如果占位符为空,我不希望在占位符之间创建html。{% if placeholder "my_placeholder" %}<div> {% placeholder "my_placeholder" or %} {% endplaceholder %}</div>{% endif %}
3 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
如果希望在占位符为空的情况下显示其他内容,请使用or参数和其他{% endplaceholder %}结束标记。如果占位符没有插件或插件不产生任何输出{% placeholder "..." or %},{% endplaceholder %}则会呈现和之间的所有内容。
例子:
{% placeholder "content" or %}
There is no content.
{% endplaceholder %}
胡说叔叔
TA贡献1804条经验 获得超8个赞
这是一个非常紧凑的解决方案。
模板过滤器:
@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()
模板中的用法:
{% if request|placeholder_is_empty:'myplaceholder' %}
<h1>Here comes some content... </h1>
{% endif %}
添加回答
举报
0/150
提交
取消