实在忍不住了,为什么Django Template中不能call function 。这样导致用后台filter代码生成html pieces 更加混乱了
首先,我知道可以用tags和filter解决下面的问题,后果是让我把html代码放到了tag or filter里,混乱不堪。
====================
问题描述:
1、可以用cates_obj=Cates.objects.all()获得第一层循环所需要的 category 列表
2、我想在template中,for each 第一层的 category 列表,然后根据 每个 category 的名字 , 获取第二个列表。然后再foreach 显示第二个列表,就这么简单。
效果图如下:
=category A
----cat_a_1_sublist
----cat_a_2_sublist
----cat_a_3_sublist
=category B
----cat_b_1_sublist
----cat_b_2_sublist
----cat_b_3_sublist
=category C
----cat_c_1_sublist
----cat_c_2_sublist
----cat_c_3_sublist
===================
我现在的方案:
cates_obj_=Cates.objects.all()
list_dict={} # 这是一个dict,key是category的名字
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 ,是不可思议的决定。
大家觉得呢?
实在忍不住来这里吐槽了,同时希望知道大家的解决方案。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/125907
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.