我有一个包含四个字段的模型,这些字段都有null = True定义。我想阻止创建一个完全无效的模型;我宁愿不使用表单验证器,因为我希望这可以使用默认的admin。
如果我覆盖save()方法进行检查,我会在错误上引发什么?
答案 0 :(得分:1)
你真的可以提出任何事情,这取决于你。在这种情况下,ValueError可能适合。
答案 1 :(得分:1)
我会把它放在save()
方法中。然后,创建一个自定义错误,您可以尝试/捕获您在该模型上调用保存的任何位置。
class EmptyModelDetected(Exception):
pass
# Then in your save method
def save(self, *args, **kwargs):
if self.field1 or self.field2 or self.field3 or self.field4:
super(Model, self).save(*args, **kwargs)
else:
raise EmptyModelDetected()
# Then, wherever you call save
try:
m.save()
except EmptyModelDetected:
# handle the error