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将只是工作 – 不需要明确添加字段。