1

UserProfile を使用して管理インターフェイスからユーザーを追加しようとしていますが、次のエラーが表示されます。

/admin/auth/user/add/ の IntegrityError (1062、「キー 'user_id' のエントリ '7' が重複しています」)

ここに私の UserProfile クラスがあります:

class UserProfile(models.Model):
    # This field is required.
    user = models.OneToOneField(User)
    # Other fields here
    cliente = models.ForeignKey(cliente, null=True, blank=True)
    setor = models.CharField(verbose_name=u'Setor',
                             max_length=1,
                             default='C',
                             choices=Setor_CHOICE)


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


post_save.connect(create_user_profile, sender=User)

私はこれを使用しようとします:

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

しかし、同じエラー。

どうすればこれを修正できますか?

ありがとう

4

1 に答える 1

2

同じユーザーに接続された UserProfile の 2 番目のインスタンスを作成しようとしているようです。これは、post_save シグナルが 2 回発生した場合に発生する可能性があります。

この回答が指摘しているように、これはモデルのインポートの順序の結果として発生する可能性があります。

于 2013-02-20T20:23:17.403 に答える