2017-01-18 24 views
0

簡略化するには: 私はモデルのフィールドに直接対応していない2つのカスタムフィールドを持ち、別の名前を持つシリアライザ(django rest framework)を持っています。 to_internal_value()メソッド(おそらく)は動作しますが、これらのフィールドの投稿データへのアクセス方法はわかりません。django rest frameworkのCustomFieldから投稿データを取得します

そして場合には、あなたは私の場合の詳細について必要があります:私は、ジョブオブジェクトが見えるだろうというやり方でそれをシリアル化したい

class Requirement(models.Model): 
    job   = models.ForeignKey('Job', related_name = 'requirements') 
    description = models.CharField(max_length = 140) 
    is_must_have = models.BooleanField() # otherwise is of type b 

class Job(models.Model): 
    ... 

:私はこのようになりますジャンゴモデルを持っている

をこのように:

{ "must_have": [must have requirements], "nice:to_have": [nice to have requirements] } 

したがって、私は仕事のための私のシリアライザでカスタムフィールドを持っています

simToはto_representation()メソッドとto_internal_value()メソッドをオーバーライドし、to_representationは型後の要件もソートします。 しかし、JobSerializer.create内のvalidated_dataには、これらのcutomフィールドは含まれません。私はto_internal_valueが呼​​び出され、その作業を行うことを知っていますが、結果はアクセス可能ではありません。

これを解決する方法は何ですか?

答えて

0

私は好きではない解決策を見つけました。これを行うにはおそらく良い方法があります。とにかく、データはview.request.dataで利用可能です。ですから、私はこのようにperform_createフックを使用しました: