这个问题可能有一个更简单的答案。但我不知道它是什么。请考虑这个例子
class ModelA(models.Model):
a1 = models.CharField(max_length=100, default="")
a2 = models.CharField(max_length=100, default="")
class ModelB(models.Model):
modela = models.ForeignKey(ModelA, on_delete=models.CASCADE)
b2 = models.CharField(max_length=100, default="")
在ModelBSerializer
以下,我可以使用a1
为a2
场获得ModelA
的SerializerMethodField
或modela
的值。
class ModelBSerializer(serializers.ModelSerializer):
modela = SerializerMethodField()
class Meta:
model = ModelB
fields = (
'modela',
'b2',
)
def get_b1(self, obj):
return obj.modela.a1 # or obj.modela.a2
但如果我想要a1
和a2
怎么办?而且我希望它们与ModelBserializer
和modela
一起被包括在b2
领域。
使用source
参数如下,
class ModelBSerializer(serializers.ModelSerializer):
modela = serializers.StringRelatedField()
a1 = serializers.CharField(source='modela.a1')
a2 = serializers.CharField(source='modela.a2')
class Meta:
model = ModelB
fields = ('b2', 'modela', 'a1', 'a2')
qazxsw poi返回qazxsw poi表示qazxsw poi类