Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按日期列出_Python_Django_Loops - Fatal编程技术网

Python 按日期列出

Python 按日期列出,python,django,loops,Python,Django,Loops,我正在创建一个列表页面,我有这个概念。这是我的数据 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), 'na

我正在创建一个列表页面,我有这个概念。这是我的数据

        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'}]
我想显示这样的输出

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
我正在考虑for循环,但我希望只显示一次日期,而不重复它

@这就是结果。正如我所注意到的。2015年9月30日重复3次

    Sept. 30, 2015
        1.Set Task Finished, PE
    Oct. 29, 2015
        1.New Activity for a Task, DN
    Sept. 30, 2015
        1.New Activity from a User, PE
        2.New Activity from a User, DN
    Sept. 7, 2015
        1.New Activity for a Task, DN    
    Sept. 30, 2015
        1.New Activity from a User, NY
试试这个:

from django.db.models import F
Model.objects.values('Date').distinct().annotate(name=F('Name'), status=F('Status'))
编辑

在模板中显示此项的一个选项是usgin模板标记,并显示索引号:

{% 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>
{%按执行日期将列表重新分组为列表数据%}
    {列表数据%中的执行日期为%}
  • {{exec_date.grouper}}
      {exec_date.list%中项目的%
    • {{forloop.counter}.{{item.name},{{{item.status}
    • {%endfor%}
  • {%endfor%}

对列表进行排序的正确方法是使用如下函数:

List.sort(key=lambda a: a['exec_date'])

列表正确排序后,您可以迭代列表项并根据需要显示它们。

您好,谢谢。。。我更新了我的问题。。。这就是我真正的意思。现在,我正试图学习如何按照您的建议使用annotate和distinct。。。谢谢你是的我帮了你。。。这很接近我的想象。然而。这是我运行它时的结果。我会更新我的问题,让你看到它。。。再次感谢@GochtI,我明白了!!我刚刚添加了。orderby('exec_date')是的,我想您需要更改YOUR查询。