Давайте рассмотрим довольно обычный пример этого процесса.Мы хотим зарегистрировать нового пользователя, а также создали модель профиля, в которой мы хотим, чтобы профиль пользователя сохранялся только при сохранении действительной информации о пользователе.
Мы можем создать нового пользователя в админке Django и использовать метод saved_model
в ModelAdmin
, чтобы сохранить другие части формы в модели Profile
.Это «нормальный» способ сделать это.Но, используя этот способ, вы можете получить доступ к пользователю и профилю только из панели администратора Django.Форма «Регистрация пользователя» вне Администратора Django будет не работать, так как для доступа к элементам управления администратора Django Пользователю придется зарегистрироваться.
Но с использованием post_save
сигнал, новый пользователь и профиль могут быть созданы и обновлены независимо от того, используете ли вы панель администратора Django или пользовательскую форму, которая сохраняется в моделях User
и Profile
.
Поэтому использование сигналов является наиболеегибкий, но теперь вам нужно убедиться, что у вас есть способ проверки информации, поступающей из пользовательской формы.