我有一个django应用程序,我正在使用Django Rest Framework!
我的模型如下:
class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
我将序列化程序定义如下:
class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = Author
fields = ('first_name', 'last_name', 'email')
在我看来,我的查询如下:
author_detail = Author.objects.extra(select={'middle_name':'''SELECT middle_name from MyTable where MyTable.first_name = first_name'''})
根据查询,我将在我的对象middle_name
中获得一个额外的字段。但是我不能再对结果对象使用序列化器,因为它不会将middle_name
带入api。
如何修改序列化程序以获取middle_name
?
答案 0 :(得分:1)
只需将序列化程序中的字段添加为普通字段即可。
class AuthorSerializer(serializers.ModelSerializer):
middle_name = serializers.CharField()
class Meta:
model = Author
fields = ('first_name', 'last_name', 'middle_name', 'email')