我正在本网站上实施方法#2。
目前,我有:
class Owner(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL,
null=True, blank=True, on_delete=models.SET_NULL)
group = models.OneToOneField(Group,
null=True, blank=True, on_delete=models.SET_NULL)
我的要求是,所有者只有一个用户或组,但不能同时拥有这两个用户。
当我的脚本通过直接调用Owner.create
创建脚本时,如何强制执行此操作?
答案 0 :(得分:0)
覆盖模型保存以处理案例
class Owner(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL,
null=True, blank=True, on_delete=models.SET_NULL)
group = models.OneToOneField(Group,
null=True, blank=True, on_delete=models.SET_NULL)
def save(self, *args, **kwargs):
if self.group != None and self.user != None:
self.user = None
elif self.group == None and self.user == None:
<RETRUN ERROR>
super(Owner, self).save(*args, **kwargs)