Python Django:如何将QuerySet序列化为对象而不是数组?

Python Django:如何将QuerySet序列化为对象而不是数组?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我想将QuerySet序列化为JSON对象,而不是JSON数组 对于型号Day,序列化的QuerySet应该是带有Day.date键和序列化的Days作为值的对象 class DaySerializer(serializers.ModelSerializer): class Meta: model = Day exclude = [] 这将返回序列化对象的数组: DaySerializer(Day.objects.all(),many=True).dat

我想将
QuerySet
序列化为JSON对象,而不是JSON数组

对于型号
Day
,序列化的
QuerySet
应该是带有
Day.date
键和序列化的
Day
s作为值的对象

class DaySerializer(serializers.ModelSerializer):
    class Meta:
        model = Day
        exclude = []
这将返回序列化对象的数组:

DaySerializer(Day.objects.all(),many=True).data

{'15.02.2005':{...},
 '16.02.2005':{...},
  ...
}

我很好奇是否有一些DRF方法可以做到这一点。

好吧,没有现成的方法可以做到这一点,但是您可以重写序列化程序的
.to_representation()
.to_internal_value()
方法来实现这一点

这些方法使您能够更改序列化和反序列化的完成方式


有关详细信息,请参阅。

这些日期是从哪里来的?我认为这不会有帮助。因为
to_representation()
一次只处理一个对象。您尝试过吗?如果
many=True
,我怀疑传入的
instance
将是一个对象列表。是。。真正的魔法正在其他地方实施。