我有以下型号:
class Event(models.Model):
assigned_to= models.ForeignKey(user)
(...) # Some other fields
我创建了一个Event实例
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()
期间针对foreignkey字段指定的None而引发的ValidationError,我应该如何解决此错误。
答案 0 :(得分:0)
我设法通过在@Mad Wombat建议的ForeignKey上使用null=True
来生成错误,并通过覆盖模型上的clean方法来检查实例上的assigned_to是否为None
def clean(self):
if self.assinged_to is None:
raise ValidationError({'assigned_to': "Whatever error"})
当full_clean()
调用clean()
方法时,它会根据需要引发验证错误。