我有一個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使用異常處理來實現本地更優雅的方式。有任何想法嗎?
你可以寫一個自定義的管理器方法。 –
或者'嘗試:除了:' –