首页 > Django template不能调用函数,结果前后台代码更加耦合了

Django template不能调用函数,结果前后台代码更加耦合了

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%}
【热门文章】
【热门文章】