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
将是一个对象列表。是。。真正的魔法正在其他地方实施。