-
В разделе Storing additional information about users описывается вариант создания профиля по сигналу о создании нового django.contrib.admin.models.User. Callback-функции для django.db.models.signals.post_save предлагается регистрировать в models.py, но в каком models.py? Есть сомнение, что обработчик события надо регистрировать в модуле, где описывается модель пользователя, а не модель его профиля.
-
Вот ещё бы сразу правильно указать свой OpenID на Яндексе...
-
По второй ссылке:
Where should this code live?
You can put signal handling and registration code anywhere you like. However...
Прочитайте внимательнее, в документации все описано.
-
Так вот, там написано:
However, you'll need to make sure that the module it's in gets imported early on so that the signal handling gets registered before any signals need to be sent.
Мои опасения заключались в том, что модель профиля может импортироваться после того, как сигнал уже отправлен.
Тем не менее, я попробовал разместить регистрацию в модели профиля, создал нового пользователя в консоли. До вызова save, вызов get_profile ожидаемо приводил к исключению DoesNotExist, а после - нет. Вопрос - почему, не из-за поля
user=models.ForeignKey(User)в профиле? Или всё-таки из-за того, что Django импортирует все модули приложений указанных в settings.py? -
Django импортирует модели приложений, указанных в settings.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

