Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在编辑过程中解除django模型上的外键关联以进行验证_Python_Django - Fatal编程技术网

Python 在编辑过程中解除django模型上的外键关联以进行验证

Python 在编辑过程中解除django模型上的外键关联以进行验证,python,django,Python,Django,我有以下型号: 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(),djan

我有以下型号:

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.

对于foreignkey字段中指定的None,我应该如何使用在
full_clean()
过程中引发的ValidationError来避免此错误。

我按照@Mad Wombat的建议,通过在foreignkey上使用
null=True
来生成错误,并通过覆盖模型上的clean方法来检查实例上分配给的_是否为None

def clean(self):
    if self.assinged_to is None:
        raise ValidationError({'assigned_to': "Whatever error"})

full\u clean()
调用
clean()
方法时,它会根据需要引发验证错误。

assigned\u to=models.ForeignKey(user,null=True)可能有帮助如果我不希望数据库被更新为没有人分配给它们的事件,那么这将没有帮助@MadWombat在这种情况下,为什么在验证中不需要为外键分配任何值?我正在验证ajax提交的数据,以便编辑对象@MadWombat