簡體   English   中英

帶有額外字段的Django rest框架序列化器

[英]Django rest framework serializer with extra field

我有一個使用Django Rest Framework的django應用程序!

我有一個模型如下:

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 但是我不能再在結果對象上使用序列化程序,因為它不會在API中引入middle_name

我如何修改我的序列化程序以獲取middle_name

只需將序列化器中的字段添加為普通字段即可。

class AuthorSerializer(serializers.ModelSerializer):
    middle_name = serializers.CharField()
    class Meta:
        model = Author
        fields = ('first_name', 'last_name', 'middle_name', 'email')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM