嗨,我有一个 post save 信号,它在创建新的 User 对象时保存 user_profile 对象:
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
class UserProfile(models.Model):
user = models.OneToOneField(User)
...
def __unicode__(self):
return self.user.username
def _create_user_profile(sender, instance, created, **kwargs):
UserProfile.objects.create(user=instance)
post_save.connect(_create_user_profile, sender=User)
但是,这导致我出现以下问题:
如果我在管理员中创建一个新用户,一切都很好。如果我然后尝试编辑然后将User
权限更改为员工状态,我会收到"Duplicate entry '6' for key 'user_id'"
错误消息。我猜该UserProfile
对象正在尝试重新保存该对象?
我怎样才能避免这种冲突?
非常感谢任何帮助。