我有一个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使用异常处理来实现本地更优雅的方式。有任何想法吗?
你可以写一个自定义的管理器方法。 –
或者'尝试:除了:' –