Django Serializer 仅使用 many=True 序列化对象

Django Serializer only serializing objects with many=True

我正在尝试制作一个序列化程序

class StoreSerializer(serializers.ModelSerializer):
    class Meta:
        model = Store
        fields = '__all__'

并且在视图集中,

def list(self, request, *args, **kwargs):
    obj = Store.objects.first()
    ser = StoreSerializer(data=obj)
    if ser.is_valid():
        pass
    print(ser.data)
    return Response(ser.data)

此方法仅返回一个空字典 {} 作为响应。当定义序列化器为

ser = StoreSerializer(data=[obj], many=True)

对象正在序列化。我在这里做错了什么?

当您将模型数据传递给 ModelSerializer 时,您不需要调用该函数

serializer.is_valid()

所以你可以只传递数据而没有数据密钥

ser = StoreSerializer(obj)
print(ser.data)