Django模型在模型级别的XOR?

Django模型在模型级别的XOR?,django,django-models,Django,Django Models,我正在这个网站上实施方法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,

我正在这个网站上实施方法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
来创建它们时,如何强制执行此操作

覆盖模型保存以处理案例

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)        
类所有者(models.Model):
user=models.OneToOneField(settings.AUTH\u user\u MODEL,
null=True,blank=True,on\u delete=models.SET\u null)
组=型号。OneToOneField(组,
null=True,blank=True,on\u delete=models.SET\u null)
def保存(自身、*args、**kwargs):
如果self.group!=无和self.user!=无:
self.user=None
elif self.group==无和self.user==无:
超级(所有者,自我)。保存(*args,**kwargs)
什么是“方法2”?