【发布时间】:2021-12-26 15:44:05
【问题描述】:
我有 2 个模型:
class Model(models.Model):
...
related = models.ForeignKey(
'RelatedModel',
on_delete=models.CASCADE,
related_name='related_model'
)
class RelatedModel(models.Model):
...
flag = models.BooleanField()
我需要在模型实例序列化程序中传递 RelatedModel 的“标志”属性的值,此外,这个值必须反转,即如果它是“真”,我应该将“假”作为布尔数据类型返回。
已经用方法实现了:
class ModelSerializer(serializers.ModelSerializer):
...
flag = serializers.SerializerMethodField()
@staticmethod
def get_flag(obj):
return not obj.related.flag
class Meta:
model = Model
fields = (
...
flag
)
但也许有机会只使用像这样但具有反向值的序列化器字段?
flag = serializers.BooleanField(
source='related.flag', read_only=True
)
【问题讨论】:
标签: python django django-rest-framework django-serializer