Могу ли я вызвать функцию для установки USERNAME_FIELD = ''?

могу ли я вызвать функцию в USERNAME_FIELD = '', чтобы создать необязательный выбор для входа, используя электронную почту или номер телефона? если да, то как?

да, вы можете

Вы можете написать специальную функцию входа в представление и использовать запрос следующим образом :

user = User.objects.filter(Q(email=value)|Q(username=value)).first()
login(request, user)

Я использую функции Q django db для сложных запросов и я могу использовать Or в моих запросах, например, в коде вверху я фильтрую email равный по значению или имя пользователя равное по значению, так что если пользователь вводит имя пользователя или email я могу найти его

другими способами я могу использовать два запроса, но это не часто встречается например, так :

user_by_username=User.objects.filter(usernsme=value).first()
if user_by_username:
    login(request,user)
else:
    user_by_email=User.objects.filter(email=value).first()
    if user_by_email:
        login(request,user_by_email)

и модель пользователя по умолчанию не имеет поля mobile, вы можете сохранить mobile как имя пользователя или создать специальную модель пользователя или создать новую модель для вашего профиля пользователя

Вернуться на верх