【发布时间】:2020-08-24 05:26:15
【问题描述】:
我正试图转而开始使用 MVC。
我有一个基本 HTML 模板,其中包含一个导航栏代码:
{% 包括 "navBar.html" %}
到目前为止,一切都很好。现在,我想向它发送有关菜单按钮的信息(到 navBar.html 模板)。我有一些简单的按钮,还有一些具有下拉按钮行为的按钮。
我的按钮是对象,它们有关于名称、href、位置等、类型(简单按钮或下拉按钮)的信息
所以,我以这种方式创建了一个嵌套列表:
outer_list = []
for a in UserModule.objects.filter(user=user_id, is_active=True):
inner_list = []
inner_list.append(UserModule(a))
for b in Submodule.objects.filter(module=a.module, is_active=True):
inner_list.append(Submodule(b))
outer_list.append(inner_list)
return {'outer_list': outer_list}
因此,我在每个 inner_list 中的第一个元素是可能的下拉按钮或简单按钮的头部,具体取决于其类型属性。
最后的列表是这样的:
- [0] 按钮-简单-A
- [1] Button-Drop-A => [sub-button-1, sub-button-2, sub-button-3]
- [2] 按钮-简单-B
等等。
当我将这个 outer_list 传递给模板时,我必须将按钮排列到菜单中是一件很疯狂的事情。如果我要在模板中编写大量代码,使用MVC没有意义。
直到现在,我都是在模板上做这个的,它缺少第一个元素标识,识别按钮类型等等......
{% with isFirst=true %}
{% for inner_list in outer_list %}
{% for object in inner_list %}
{% if isFirst == true %}
<li><a href=#>Drop_parent</a></li>
{% else %}
<li><a href=#>Drop-Child</a></li>
{% endif %}
{% endfor %}
<li><a href=#>Static Button</a></li>
{% endfor %}
{% endwith %}
它根本没有完成,但我相信我走错了路。
好的建议将不胜感激。 谢谢
【问题讨论】:
标签: django list templates navbar