Django rest api: 如何将 jsonObjects 的 JsonArray return 作为模型字段?

Django rest api: how to return a JsonArray of jsonObjects as a model field?

我有两个 django 模型,如图所示

模型 1

class Big(models.Model):
    name = models.CharField(max_length=50, null=True, blank=True)

模型2

class Small(models.Model):
    name = models.CharField(max_length=50, null=True, blank=True)
    address = models.CharField(max_length=200, null=True, blank=True)
    big = models.ForeignKey(Big, related_name='small',null=True,on_delete=models.CASCADE)

一个大项目中可以有多个小项目。 Bigserializer 如下所示

class BigSerializer(serializers.ModelSerializer):

class Meta:
    model = Hotel
    fields = ('name','small')

现在访问大项目时,我得到名称和小字段。但是small字段returns只有Small模型的id。我需要整个详细信息,例如小字段内小项目的名称和地址。我怎样才能实现它?

你需要定义小型序列化器class:

class SmallSerializer(serializers.ModelSerializer):

    class Meta:
        model = Small
        fields = ('name','address')

并在 BigSerializer class 中使用此序列化程序:

class BigSerializer(serializers.ModelSerializer):
    small = SmallSerializer(many=True, read_only=True)

    class Meta:
        model = Hotel
        fields = ('name','small')

查看详情here

请注意,如果您需要可写的嵌套序列化,您应该在 BigSerializer 中实现自定义 createupdate 方法,请参阅 writable nested serialization.

部分