从具有到外键的链接的两个模型中序列化一个值



A有三种型号:

class ModelA(models.Model):
some_field = models.ForeignKey(ModelB)
class ModelC(models.Model):
some_field = models.ForeignKey(ModelB)
class ModelB(models.Model):
first_field = models.CharField()
second_field = models.CharField()

我想序列化ModelA并从ModelC中获取值。你是怎么做到的?

class ModelASerializer(serializers.ModelSerializer):
class Meta:
model = ModelA
fields = ('id', 'some_field', 'here_is_value_from_ModelC'???)

如果您想从modelA序列化程序中获取modelC的字段,那么这段代码就可以工作了。

class ModelCserializer(serializer.ModelSerializer):
class Meta:
model = ModelC
fields = ('some_field',)
class ModelASerializer(serializers.ModelSerializer):
here_is_value_from_ModelC= ModelCserializer(read_only=True)
class Meta:
model = ModelA
fields = ('id', 'some_field', 'here_is_value_from_ModelC')

class ModelASerializer(serializers.ModelSerializer):
some_field= serializer.StringRelatedField(many=True)
class Meta:
model = ModelA
fields = ('id', 'some_field', 'some_field')

最新更新