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