2016-11-29 36 views
5
benim serileştiriciye statik bir alan eklemek gerekir

için statik alan değerini nasıl ekleneceğini. Geçirilen nesneden bağımsız olarak daima aynı değeri döndürmelidir. Şu anda o kadar gibi uygulamaya:Django dinlenme çerçeve - bir serileştiriciden

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

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

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

Ama bunu yapmak için daha basit bir yolu SerializerMethodField olmadan var mı?

+0

Bunu yapmanın doğru yolu olduğunu düşünüyorum. Daha iyi bir yol bilmiyorum. – davyria

cevap

2

tek alternatif var değerini to_representation geçersiz kılmak ve eklemek olacaktır:

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

Değil çok daha iyi bir seçenek olsa.

0

Modelinize bir çizgi eklemekten hoşlanmıyorsanız, modelinize statik alan eklemek daha kolay olur.

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

class QuestionSerializer(serializers.ModelSerializer): 

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