使用UserProfile在/ admin / auth / user / add /中使用IntegrityError

时间:2013-02-20 17:34:25

标签: django django-admin user-profile

我尝试使用UserProfile从Admin界面添加用户,但是显示此错误:

/ admin / auth / user / add /中的IntegrityError (1062,“密钥'user_id'的重复条目'7'”)

这是我的UserProfile类:

class UserProfile(models.Model):
    # This field is required.
    user = models.OneToOneField(User)
    # Other fields here
    cliente = models.ForeignKey(cliente, null=True, blank=True)
    setor = models.CharField(verbose_name=u'Setor',
                             max_length=1,
                             default='C',
                             choices=Setor_CHOICE)


def create_user_profile(sender, instance, created, **kwargs):
    if created:
        UserProfile.objects.create(user=instance)


post_save.connect(create_user_profile, sender=User)

我尝试使用它:

post_save.connect(create_user_profile, sender=User, dispatch_uid='user_id')

但同样的错误。

我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:2)

似乎正在尝试创建连接到同一用户的UserProfile的第二个实例。如果post_save信号被触发两次,就会发生这种情况。

正如this answer所指出的,这可能是由于模型导入的顺序而发生的。