Django template不能调用函数,结果前后台代码更加耦合了
我知道可以用tags和filter解决问题,结果让我把html代码放到了tag or filter里,非常混乱。
我的问题:
需要在页面显示只有一层的嵌套list:如下所示:
=category A
----cat_a_1
----cat_a_2
----cat_a_3
=category B
----cat_b_1
----cat_b_2
----cat_b_3
===================
我现在的方案:
cates_obj_=Cates.objects.all()
list_dict={}
for cat in cates_obj:
list_dict[cat.name]=List.objects.all(cat_name=cat.name)
然后把:
cates_obj和list_dict分别放到context,给template使用。
=================
template里:
{% for cat in cates_obj %}
#迷糊了
怎么才能在list_dict中取出当前的 cat.name 中的内容呢?
{% endfor%}
Django 不让template call function ,是不可思议的决定。
==================================
我把问题再简化一下:
1、我可以用cates_obj_=Cates.objects.all()获得第一层循环的 category 列表
2、我想在template中,for each 第一层的 category 列表,然后根据 每个 category 的名字 , 获取第二个列表。
获取第二个列表后foreach 显示,就这么简单。
就这么简单。
{% for name, cates in list_dict.items %}
={{name}}
{% for cate in cates %}
- {{cate}}
{% endfor %}
{% endfor%}