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')