私は、Djangoの1.10プロジェクトと、このようなモデルがあります:私は実行したいフィールド・レベルの検証は - そのフィールドの値をチェックすることは、実際に有効である
class Student(models.Model):
#...
university = models.ForeignKey(University, ...)
...とシリアライザを(私はネイティブDjangoのコードを書くためにどのようにないアイデアを持っていないてきたので、私は擬似コードを提供)このように確認してください。
class StudentSerializer(serializers.ModelSerializer):
class Meta:
model = Student
fields = '__all__'
def validate_student(self, value):
if invalid_value_is_provided_for_student:
value = 666
return value
そして、最も重要なのは、私はケース内のフィールドへの再割り当て特定の値にしたいです無効な値が提供されています(上記の例では、666を割り当てています)。私に起こったこと、これを行うに 一つの方法は次のとおりです。
def validate_student(self, value):
if value not in University.objects.values('id'):
value = 666
return value
...少し汚れているように思われました。私は、Djangoが例外処理を使用してこれを実装するよりエレガントな方法を持っていると感じています。何か案は?
を解決します。 –
または '試してください:except:' –