Я расширил модель пользователя Django, используя собственный профиль пользователя с именем UserExtension
. Он связан с пользователем через уникальное отношение ForeignKey, которое позволяет мне редактировать его в админке во встроенной форме! Я использую сигнал для создания нового профиля для каждого нового пользователя:
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) Проблема в том, что если я создаю нового пользователя через администратора, я получаю IntegritiyError при сохранении «столбец user_id не уникален». Не похоже, что сигнал вызывается дважды, но я предполагаю, что администратор пытается сохранить профиль ПОСЛЕ? Но мне нужно создание через сигнал, если я создаю нового пользователя в других частях системы!