こんにちは、新しい 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
オブジェクトがオブジェクトを再保存しようとしていると思いますか?
この競合を回避するにはどうすればよいですか?
どんな助けでも大歓迎です。