2016-07-06 14 views
1

私は、シリアライザの受信を持ってintegration_dataは、私はすべてのロジックで動作する場所Xを機能させるにヌル行くではありません 場合シリアライザ another_dataがNullでない場合Yシリアライザのすべてのロジックを扱う関数Yに移動します。私のシリアライザは次のように書かれている時点では分割シリアライザDjangoの残りのフレームワーク

class SuggestionSerializer(serializers.HyperlinkedModelSerializer): 
    integration_data = serializers.DictField(write_only=True, allow_null=True, required=False) 
    sponsor_data = serializers.DictField(write_only=True, allow_null=True, required=False) 

あなたがserializer method fieldを使用するように感謝

答えて

0

が鳴ります。何かのように

class SuggestionSerializer(serializers.HyperlinkedModelSerializer): 
    integration_data = = serializers.SerializerMethodField() 
    ... 
    def get_integration_data(self, obj): 
     # Insert logic for generating value of this field here 
     ... 
     return value 

これにより、データではなく論理に基づいてフィールドの値を任意に生成することができます。

+0

SerializerMethodFieldsは読み取り専用であり、作成者が書き込み可能なフィールドを望んでいると思われます。 –

+0

はい読み込み専用です - 質問の作成者が保存する前に関数を使ってデータを処理したいと思いますか?質問が何であるか完全にはわからない。 –

+0

そうだと思いますが、モデルフィールドには対応していないとは思いません。多分、カスタム作成するかもしれません... –

関連する問題