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
中实现自定义 create
和 update
方法,请参阅 writable nested serialization.
部分
我有两个 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
中实现自定义 create
和 update
方法,请参阅 writable nested serialization.