0

我正在尝试使用用户配置文件功能,所以这是我的配置文件模型:

class Nuser(models.Model):
  user = models.OneToOneField(User)
  initials = models.CharField(max_length=5)
  def __unicode__(self):
    return u'%s %s' % (self.first_name, self.last_name)

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

post_save.connect(create_user_profile, sender=User)

我的模型已正确创建,但如果我尝试使用管理界面添加用户,我会收到此错误:

/admin/auth/user/add/ 处的 IntegrityError

(1062,“密钥‘user_id’的重复条目‘3’”)

难道我做错了什么 ?

4

1 回答 1

2

该信号可能被多次注册。使用dispatch_uid参数来防止这种情况。

例如:

post_save.connect(create_user_profile, sender=User, dispatch_uid='autocreate_nuser')
于 2012-08-09T10:46:39.727 回答