我正在创建一个列表页面,我有这个概念。这是我的数据
text.match(/\[(.*)\]/)[1].split(", "); //And now you have an array with var1,var2..etc
我希望显示这样的输出
List = [
{'exec_date': datetime.date(2015, 9, 30), 'name': 'AAA', 'status': 'PE'},
{'exec_date': datetime.date(2015, 10, 29), 'name': 'BBB', 'status': 'DN'},
{'exec_date': datetime.date(2015, 9, 30), 'name': 'CCC', 'status': 'PE'},
{'exec_date': datetime.date(2015, 9, 30), 'name': 'DDD', 'status': 'DN'},
{'exec_date': datetime.date(2015, 9, 7), 'name': 'EEE', 'status': 'DN'},
{'exec_date': datetime.date(2015, 9, 30), 'name': 'FFF', 'status': 'NY'}]
我正在考虑循环,但我想只显示一次日期而不重复它。
@Gocht这是结果。正如我注意到的那样。 2015年9月30日重复3次。
2015-9-7
1. EEE, DN
2015-9-30
1. AAA, PE
2. CCC, PE
3. DDD, DN
4. FFF, NY
2015-10-29
1. BBB, DN
答案 0 :(得分:0)
试试这个:
from django.db.models import F
Model.objects.values('Date').distinct().annotate(name=F('Name'), status=F('Status'))
修改强>
在模板中显示此功能的一个选项是usgin regroup模板标记,forloop显示索引编号:
{% regroup List by exec_date as list_data %}
<ul>
{% for exec_date in list_data %}
<li>{{ exec_date.grouper }}
<ul>
{% for item in exec_date.list %}
<li> {{ forloop.counter }}.{{ item.name }}, {{ item.status }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
答案 1 :(得分:0)