从Django视图中的模型重新组合数据

从Django视图中的模型重新组合数据,django,Django,我有一个包含如下数据的模型: Name Value Date pop1 15 2021-01-19 pup1 2 2021-01-18 pep1 25 2021-01-18 pop2 9 2021-01-17 pap1 1 2021-01-16 pep2 26 2021-01-16 pep3 4 2021-01-16 如果我执行data=myMode

我有一个包含如下数据的模型:

Name    Value    Date
pop1    15       2021-01-19
pup1    2        2021-01-18
pep1    25       2021-01-18
pop2    9        2021-01-17
pap1    1        2021-01-16
pep2    26       2021-01-16
pep3    4        2021-01-16
如果我执行
data=myModel.objects.all()
操作,我将获得正常结构中的所有数据,但我希望获得按日期分组的数据。这一目标能否直接实现

我问这个问题是因为我知道如何使用
myModel.objects.filter()
进行过滤,或者使用
myModel.objects.order\u by()
对数据进行排序。然后,存在类似于
myModel.objects.regroup('date')

编辑:

所需的输出类似于:

date:2021-01-19 >> [[name:pop1, value:15]]
date:2021-01-19 >> [[name:pup1, value:2],[name:pep1, value:25]]
date:2021-01-17 >> [[name:pop2, value:9]]
date:2021-01-16 >> [[name:pap1, value:1],[name:pep2, value:26],[name:pep3, value:4]]
基本上是一个按日期重新组合数据的对象

非常感谢。

您可以使用:

data=myModel.objects.all()
new_data={}
for e in data :
  
  if e.value('date') not in new_data :
    new_data[e.value('date')]=[e]
  else :
    new_data[e.value('date')].append(e)
print(new_data)

根据对的已接受答案和对的已接受答案,您应该能够改变您的观点,如下所示:

dates_list = MyModel.objects.values_list(
    'date', flat=True
).distinct()

group_by_date = {}
for date in dates_list:
    group_by_date[date] = MyModel.objects.filter(date=date)
然后在模板中:

{% for date, items in group_by_date %}
    date: {{ date }} >>

    {% for item in items %}
      [ name: {{ item.name }}, value: {{ item.value }} ]
    {% endfor %}

    <br />
{% endfor %
{%表示日期,组中的项目按日期%}
日期:{{date}}>>
{items%%中的项的%s}
[名称:{{item.name},值:{{item.value}]
{%endfor%}

{%endfor%

(显然,您希望使用更多的HTML标记以更令人愉快的方式格式化输出!)

请您解释一下所需的输出是什么?是否要按日期将“值”列分组?使用所需的输出编辑!:)您可以使用myModel.objects.all()然后处理您dict tp获取所需的输出这是否回答了您的问题?我昨天尝试了此操作,但出现以下错误
TypeError:“myModel”对象不可下标
。您可以尝试我的最新修改吗最后,我在循环之前序列化了模型中的数据