Django模板如何在postgallery为空时隐藏图片画廊标题
你之前的写法失效有两个核心原因:
- 变量名不匹配:你模板中遍历的是
postgallery,但判断时用了imagegallery,拼写不一致导致判断永远不生效 - 判断逻辑错误:不能直接将列表类的可迭代对象和数字0做相等判断,模板引擎中直接对可迭代对象做
if判断即可识别是否为空。
解决方案
将整个画廊的标题和容器代码全部包裹在非空判断内即可,只有当postgallery存在至少一条内容时才会渲染整段代码,修改后的模板代码如下:
{% if postgallery %} <a>Image Gallery</a> <div class="row"> {% for images in postgallery %} <div class="col-md-3"> <a href="{{ images.images.url }}" data-lightbox="image-1"> <img class="img-thumbnail" src="{{ images.images.url }}" /> </a> </div> {% endfor %} </div> {% endif %}
如果需要在无图片时展示提示,可以补充else分支:
{% if postgallery %} <a>Image Gallery</a> <div class="row"> {% for images in postgallery %} <div class="col-md-3"> <a href="{{ images.images.url }}" data-lightbox="image-1"> <img class="img-thumbnail" src="{{ images.images.url }}" /> </a> </div> {% endfor %} </div> {% else %} <p>暂无上传的图片</p> {% endif %}
内容的提问来源于stack exchange,提问作者Wazy
相关产品推荐
相关产品推荐

