Я расширил пользовательскую модель Django с помощью пользовательского профиля пользователя UserExtension
.
Это связано с пользователем через уникальное ForeignKey Relationship, которое позволяет мне редактировать его в администраторе в встроенной форме!
Я использую сигнал для создания нового профиля для каждого нового пользователя:
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)
(как описано здесь, например: Расширение модели User с настраиваемыми полями в Django) Проблема в том, что, если я создаю нового пользователя через администратора, я получаю IntegritiyError при сохранении "column user_id не уникален". Кажется, что сигнал вызывается дважды, но я думаю, что администратор пытается сохранить профиль AFTERWARDS? Но мне нужно создание через сигнал, если я создаю нового пользователя в других частях системы!