用户个人资料类如下所示:
class UserProfile(models.Model):
user = models.OneToOneField(User)
email_my_machines = models.BooleanField(default=True)
email_others_machines = models.BooleanField(default=True)
class Meta(object):
verbose_name_plural = "Profile"
def create_user_profile(sender, instance, created, **kwargs):
UserProfile.objects.get_or_create(user=instance)
post_save.connect(create_user_profile, sender=User)
在settings.py
中添加了"AUTH_PROFILE_MODULE = 'generic.UserProfile'"
一切按预期工作。
在Django Admin中,添加用户涉及两种形式。第一种形式具有最小字段,例如“用户名”,“密码”,“密码确认”和“用户简档”类中提供的字段。 当我修改此表单中的“用户个人资料”字段时,应用程序将崩溃并显示错误“(1062,”重复条目'34'表示密钥'user_id'“)”。这是完整性错误。
我是Django的新手。你能帮帮我吗?
答案 0 :(得分:2)
我见过的唯一一次是同一个信号被发射两次。尝试在信号连接中添加dispatch_uid
,它应该修复:
post_save.connect(create_user_profile, sender=User, dispatch_uid='create_profile_user')
另请参阅:https://docs.djangoproject.com/en/dev/topics/signals/#preventing-duplicate-signals