СУХОЙ подход к добавлению информации о пользователе без использования Auth.user в Django

Я пишу приложение, в котором мне нужно зарегистрировать информацию о пользователе, даже если пользователь не существует (пока) в Django. По сути, мне нужно вставить почти все поля, используемые Auth.user (мне не важен пароль). Я также создал модель профиля, связанную с OneToOneField с моделью Auth.user, и мне нужно заполнить эти поля также для пользователей, которых еще нет.

Если пользователь позже зарегистрируется на сайте (используя Auth.user), я поищу его по электронной почте и, если найду его, объединю введенную информацию и предоставленную им.

ВОПРОС: Каков наилучший подход для реализации настойчивости пользователя, не повторяя себя при создании моделей, очень похожих друг на друга?

1 ответ

Я бы порекомендовал использовать фиктивное значение в полях date_joined или last_login для модели User, если вы хотите реализовать решение без добавления нового поля просто в качестве флага индикатора.

Потенциальная проблема с использованием флага is_active заключается в том, что вы можете в конечном итоге захотеть использовать этот флаг для "черного списка" или эффективного удаления учетной записи без фактического удаления их записи из вашей базы данных (чтобы предотвратить повторное создание учетной записи с теми же учетными данными и т. Д..) Если вы начнете полагаться на тот факт, что пароль не установлен, то, если когда-нибудь настанет день, когда вы захотите внедрить альтернативные методы входа в систему (OAuth), тогда ваше поле пароля также не будет установлено в этих случаях (огромный конфликт).,

Другие вопросы по тегам