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,我得到一个序列化exception( ext_link
)的ext_link
属性。
我如何序列化ext_link
属性?
由于它不是模型字段,因此需要将其明确添加到序列化程序类中
class MyModelSerializer(serializers.ModelSerializer): ext_link = serializers.Field() class Meta: model = MyModel fields = ('name', 'ext_link')
编辑:在REST框架3添加到fields
将只是工作 – 不需要明确添加字段。