2016-11-29 65 views
5

我需要向我的序列化程序添加一個靜態字段。無論傳入的對象如何,它總是應該返回相同的值。目前,我實現了它,像這樣:django rest框架 - 如何爲串行器添加一個靜態字段值

class QuestionSerializer(serializers.ModelSerializer): 
    type = serializers.SerializerMethodField() 

    @staticmethod 
    def get_type(obj): 
     return 'question' 

    class Meta: 
     model = Question 
     fields = ('type',) 

但有一個簡單的方法來做到這一點,沒有SerializerMethodField

+0

我認爲這是做到這一點的正確方法。我不知道有什麼更好的辦法。 – davyria

回答

2

,唯一的選擇是覆蓋to_representation並添加值有:雖然

def to_representation(self, obj): 
    data = super().to_representation(obj) 
    data['type'] = 'question' 
    return data 

不是一個更好的選擇。

0

如果您不關心在模型中添加線條,向模型添加靜態字段會更容易。

class Question(models.Model): 
    type = 'question' 

class QuestionSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = Question 
     fields = ('type',) 
相關問題