と呼ばれるカスタムユーザープロファイルを使用して、Djangoのユーザーモデルを拡張しましたUserExtension
。これは、独自の外部キー関係を介してユーザーに関連付けられているため、管理者でインライン形式で編集できます。シグナルを使用して、すべての新しいユーザーの新しいプロファイルを作成しています。
def create_user_profile(sender, instance, created, **kwargs):
if created:
try:
profile, created = UserExtension.objects.get_or_create(user=instance)
except:
pass
post_save.connect(create_user_profile, sender=User)
(ここで説明するように、たとえば:Djangoのカスタムフィールドを使用したユーザーモデルの拡張)問題は、管理者を介して新しいユーザーを作成すると、「列user_idは一意ではありません」の保存時にIntegritiyErrorが発生することです。シグナルが2回呼び出されているようには見えませんが、管理者がプロファイルを後で保存しようとしていると思いますか?ただし、システムの他の部分で新しいユーザーを作成する場合は、シグナルによる作成が必要です。