私が検証したいフィールドがあるとしましょう。私は通常、私が使用することを知っている分野のためにこれについてこのように行くだろう。フィールドをvalidate(self)でvalidated(validated_dataにアクセスするため)としてマークする方法はありますか?
def validate_number(self, value):
if value == 7:
raise serializers.ValidationError('7 is bad!')
if value == 5:
return None # I want 5 to come back as None
return value
私はこれと同じ動作を達成する方法、のは私が検証に持っていると私は検証()でこれらのフィールドを通過フィールドをわからないとしましょうか?
def validate(self, data):
if data['number'] == 7:
raise serializers.ValidationError('7 is bad!')
if data['number'] == 5:
data['number'] = None
return data
.create/.updateメソッドでvalidated_dataとしてアクセスできますか?
[フォームとフィールドの検証に関するdjangoドキュメント](https://docs.djangoproject.com/en/1.10/ref/forms/validation/#form-and-field-validation)から、2番目の箇条書き、 "validate()メソッドは何も返さず、値を変更しないでください。"あなたの答えは 'validate()'のようには見えません。より詳細な情報を提供することで、別の解決策を呼び起こすことができる。 – jamjar
DRFシリアライザの検証については、動作するはずです。 [docs](http://www.django-rest-framework.org/api-guide/serializers/#object-level-validation)は、データを変更してはならないとは言いません。私が正しく思い出した場合は、シリアライザに渡された他のカスタム値から[hiddenfield](http://www.django-rest-framework.org/api-guide/fields/#hiddenfield)を構築するためにそれを使用し、さらに一部を削除しました値。 –