我有一个下拉菜单,我通过循环遍历对象列表生成。在对象0,10和13之后我有一个分隔符。但是有些用户无法访问所有对象,因此分隔符不显示。有人建议在每个桶中的最后一个对象之后有一个好方法。即桶[0],[1-10],[11-13]。它们的桶是不同状态的区域。
我不一定要求别人为我编写代码。我只想问一下如何在概念上这样做,因为我对编码和Django都很陌生。非常感谢任何帮助!
<ul class="dropdown-menu">
{% for i in area_list %}
{% if not i.area_id == area.area_id %}
{% if i.area_id == 0 or i.area_id == 10 or i.area_id == 13 %}
<li><a href="{% url 'market_overview' area_id=i.area_id %}">{{ i.area_name }}</a></li>
<li class="divider"></li>
{% else %}
<li><a href="{% url 'market_overview' area_id=i.area_id %}">{{ i.area_name }}</a></li>
{% endif %}
{% endif %}
{% endfor %}
</ul>
答案 0 :(得分:1)
见forloop.last
。尝试:
context['zones'] = (area_list[:1], area_list[1:11], area_list[11:])
和
<ul class="dropdown-menu">
{% for areas in zones %}
{% for i in areas %}
{% if not i.area_id == area.area_id %}
<li><a href="{% url 'market_overview' area_id=i.area_id %}">{{ i.area_name }}</a></li>
{% endif %}
{% endfor %}
{% if not forloop.last %}
<li class="divider"></li>
{% endif %}
{% endfor %}
</ul>
您还可以在视图中准备区域并过滤空区域。