Я ищу идеи о наиболее элегантном способе заставить пользователя определить имя пользователя сразу после того, как они проверит свою электронную почту и войдут в первый раз. Кроме того, они нажимают на подтверждение по электронной почте, не вошли в систему и должны сначала ввести имя пользователя, чтобы иметь возможность войти в систему в первый раз.
Мои требования состоят в том, чтобы имя пользователя отсутствовало в форме регистрации, но вместо этого будьте на собственной странице шаблона сразу после того, как пользователь войдет в систему в первый раз . Как только они определят имя пользователя, они не увидят эту страницу снова.
Я использую представления на основе классов, так что я думаю, что это исключает декораторы.
I ' ve исследовал:
- Разрешения на уровне пользователя (не можете просматривать страницы, пока вы не введете имя пользователя)
- Использование логического значения
is_active
(пользователь не считается активным, пока они не предоставят имя пользователя) PermissionRequiredMixin
(добавить к каждому классу, который может увидеть вошедший в систему пользователь) UserPassesTestMixin
(добавить в каждый класс, который потенциально может увидеть вошедший в систему пользователь) AccessMixin
(добавить в каждый класс, который потенциально может увидеть вошедший в систему пользователь) - Добавить свое собственное логическое поле в мою пользовательскую модель пользователя
- В каждом представлении проверять, является ли
username
нулевым, если оно есть, перенаправить на страницу формы имени пользователя (не похоже на элегантный подход) user_logged_in
сигнал (кто-то еще не может обойти страницу формы имени пользователя) - Middleware как-то?
My Concern
Пользователь проверяет электронную почту, регистрируется в первый раз, попадает на страницу имени пользователя. Я хочу, чтобы они создали имя пользователя на этой странице, прежде чем им будет разрешено go перейти на любую другую страницу. Я не хочу, чтобы они входили в систему и, возможно, вставляли другой адрес в адресную строку и обходили этот шаг.
Я бы хотел избежать ...
Добавление проверки в каждое представление, к которому у аутентифицированного пользователя будет иметь доступ.
То, что я пытаюсь сделать, похоже на принуждение кого-либо принять «Условия предоставления услуг» перед тем, как продолжать использовать веб-сайт. Мне нужно, чтобы они выбрали имя пользователя.
Просто надеясь, что кто-то с этим поделится советами. Я бы хотел избежать обсуждения "почему бы вам просто не добавить поле имени пользователя к регистрационной форме ". Ответ - это не то, что я хочу.
Я полностью понимаю, что этот вопрос является широким и спрашивает предложения, а не спецификацию кода c. Я обычно задаю подробные вопросы о коде c, но этот, я просто не знаю, как лучше подойти. Извините заранее.