49
我想序列化一個模型,其中包含我也想序列化的屬性字段。ModelSerializer使用模型屬性
models.py:
class MyModel(models.Model):
name = models.CharField(max_length=100)
slug = models.AutoSlugField(populate_from='name')
@property
def ext_link(self):
return "/".join([settings.EXT_BASE_URL, self.slug])
serializers.py:
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('name', 'ext_link')
當試圖去相關的URL,我得到的ext_link
財產串行異常(KeyError異常)。
如何序列化ext_link
屬性?
謝謝!現在工作。 –
***一注***:元字段列表是可選的。如果你省略'fields',在上面的例子中,你將得到序列化數據中的所有'MyModel'字段加'ext_link'。對於複雜的模型來說這真的很棒! *編輯*:至少,這是'djangorestframework == 2.3.14'。 –
對我來說,使用serializers.Field給出了一個錯誤。如果未定義to_representation並且視圖是隻讀的,則「serializers.ReadOnlyField」不起作用。 –