【问题标题】:Django - User inherited IntegrityErrorDjango - 用户继承的 IntegrityError
【发布时间】:2012-08-06 13:25:02
【问题描述】:

我正在尝试使用User profile 功能,所以这是我的个人资料模型:

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, "重复条目 '3' 用于键 'user_id'")

我做错了吗?

【问题讨论】:

  • 一个用户只能有一个用户配置文件。您可以将数据粘贴到您的UserUserProfile 表中吗?

标签: python mysql django inheritance django-models


【解决方案1】:

信号可能被多次注册。使用dispatch_uid argument 来防止这种情况发生。

例如:

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

【讨论】:

    猜你喜欢
    • 2021-01-14
    • 1970-01-01
    • 2016-09-18
    • 2018-01-22
    • 1970-01-01
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    相关资源
    最近更新 更多