【发布时间】:2022-02-11 01:25:08
【问题描述】:
我有一个这样的模型:
class A:
name = models.CharField()
group = models.ForeignKey('SomeModel', null=True, blank=True)
当我对此进行序列化时,我希望序列化器根据“组”字段是否为空白而具有不同的格式。当然,这可以通过为不同格式设置不同的序列化程序并在视图层中根据需要调用它们来实现:
class TypeASerializer(serializers.ModelSerializer)
class Meta:
model = A
fields = ('id', 'name')
class TypeBSerializer(serializers.ModelSerializer)
class Meta:
model = A
fields = ('id', 'name', 'group')
但我想在序列化程序层本身中处理它,并为此使用一个序列化程序。这可能吗?
【问题讨论】:
-
您可以将每个字段声明为 SerializerMethodField 并根据您的条件返回值或
None。 -
@vishes_shell 最好能写出答案以免混淆。
标签: django django-rest-framework