【问题标题】:Django Serializer only serializing objects with many=TrueDjango Serializer 仅使用 many=True 序列化对象
【发布时间】:2022-01-18 01:24:54
【问题描述】:

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

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)

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

【问题讨论】:

  • 在传递模型数据时不必调用 ser.is_valid(),只需不带数据键即可传递,ser = StoreSerializer(obj) print(ser.data)
  • 谢谢@Luiz 你能把它写下来作为答案,以便我可以接受并标记它已回答吗?数据关键字有什么用?你也可以添加吗?

标签: python django django-rest-framework


【解决方案1】:

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

serializer.is_valid()

所以你可以只传递没有数据键的数据

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    相关资源
    最近更新 更多