Django другое поле USERNAME для регистрации и входа - PullRequest
0 голосов
/ 13 января 2020

Я хочу иметь USERNAME_FIELD для регистрации моих пользователей (допустим, это поле является идентификатором страны) и еще одно для входа в систему (внутренний идентификатор).

Мой процесс выглядит следующим образом:

  • Пользователь регистрируется с именем, электронной почтой и COUNTRY_ID (как username_field), а также с паролем.

  • Далее администратор проверяет эту информацию и подтверждает регистрацию этой пользователь и автоматический внутренний идентификатор c назначены.

  • Затем пользователь информируется (по электронной почте) об этом действии и поэтому может войти в систему с этим внутренним идентификатором.

Возможно ли тогда иметь другое USERNAME_FIELD для регистрации и для входа в систему?

1 Ответ

0 голосов
/ 13 января 2020

Предполагается, что имя пользователя является уникальным (очевидно - как еще вы можете идентифицировать своего пользователя при входе в систему?), Поэтому в его текущей формулировке ваш вопрос не имеет смысла. Если вы не хотите, чтобы пользователи указывали имя пользователя при подаче заявки на регистрацию, тогда ваш вопрос не в том, чтобы иметь «USERNAME_FIELD для регистрации и другого для входа в систему», а в том, «как разрешить пользователю регистрироваться без *». 1002 * предоставление значения для USERNAME_FIELD ".

Одним из возможных решений является использование предоставленного системой уникального случайного значения (ie uuid или чего-либо, созданного из ip пользователя + текущая временная метка + некоторое случайное значение) в качестве временного имени пользователя.

Другой способ - использовать отдельную модель для регистрации и создавать пользователя только во время процесса проверки (что, если вы используете модель User по умолчанию, поможет сообщить еще не подтвержденные регистрации).

В обоих случаях вам, конечно, придется писать свои собственные формы и представления (предпочтительно делегируя то, что может быть приложению contrib.auth - не пытайтесь изобретать велосипед).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...