我有以下模型:
class Event(models.Model):
assigned_to= models.ForeignKey(user)
(...) # Some other fields
我创建了一个事件实例
event = Event(assigned_to=someuser, **kwargs)
event.save()
如果我在编辑事件时必须使用模型验证功能,
event.assigned_to = None
对于event.full_clean()
,Django 抱怨它不能将外键关系设置为 null。
Cannot assign None: "Event.assigned_to" does not allow null values.
我应该如何解决这个问题,以使用在full_clean()
期间为外键字段指定的 None 引发的 ValidationError 来获取错误。
我设法按照 Wombat 的建议在外键上使用null=True
@Mad并覆盖模型上的 clean 方法来检查实例上的assigned_to是否不是 None
def clean(self):
if self.assinged_to is None:
raise ValidationError({'assigned_to': "Whatever error"})
当full_clean()
调用clean()
方法时,它会根据需要引发验证错误。