Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.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模型中unique=True的OneToOneField_Python_Django_Django Models - Fatal编程技术网

Python “完整性错误”;例外情况:字段不是唯一的”;对于django模型中unique=True的OneToOneField

Python “完整性错误”;例外情况:字段不是唯一的”;对于django模型中unique=True的OneToOneField,python,django,django-models,Python,Django,Django Models,我在models.py中有以下内容 class Groups(models.Model): name = models.CharField(max_length=20) calls_lim = models.IntegerField(blank=True,null=True,max_length=2,unique=False) time_lim = models.IntegerField(max_length=4,blank=True,null=True,unique=False)

我在models.py中有以下内容

class Groups(models.Model):
  name = models.CharField(max_length=20)
  calls_lim = models.IntegerField(blank=True,null=True,max_length=2,unique=False)
  time_lim = models.IntegerField(max_length=4,blank=True,null=True,unique=False)
  ivr = models.OneToOneField(ivr,unique=False)

  def __unicode__(self):
    return u'%s' % (self.name)

class UserProfile(models.Model):
  user = models.OneToOneField(User)
  phone = models.IntegerField(max_length=12)
  group = models.OneToOneField(Groups,unique=False)
  msg_rcv = models.IntegerField(default=0,blank=True,null=True)
  msg_snt = models.IntegerField(default=0,blank=True,null=True)
  last_call = models.DateTimeField(blank=True,null=True)
  pin = models.IntegerField(max_length=6,blank=True,null=True)
  blacklist = models.BooleanField(default=False)

  def __unicode__(self):
    return u'%s' % (self.user)
当我尝试为UserProfile执行插入时,field组抛出此异常

Exception Value: column group_id is not unique
导致异常的views.py中的代码段

group = Groups.objects.get(name=str(form.cleaned_data['group']))
UserProfile.objects.create(user=User,phone='12345',group=group)
这是预期的行为吗?将OneToOneField用于团体是否错误


谢谢

直觉上,我认为组和用户有多对多的关系(一个用户可以是多个组的一部分,一个组可以由多个用户组成)。如果是这种情况,请改用ManyToManyField

如果在您的情况下,一个用户只能是一个组的一部分,那么组-用户关系是一对多的,因此UserProfile模型需要有一个ForeignKey到组

OneToOnefield仅用于两个模型之间的一对一关系


请参阅“
创建(用户=用户,…)
”?您要么通过编写
User=…
来隐藏
User
模型,要么试图将
User
模型类转换为
User
id,这毫无意义。此外,您不应该对所有内容都设置
null=True
<例如,code>msg_snt和
msg_rcv
毫无意义,因为
None
而不是
0
。另外,
max_length
整型字段
不执行任何操作。最后,什么是
ivr
?谢谢。。。我对sql关系感到困惑。