【问题标题】:can I call a function to set my USERNAME_FIELD = ''?我可以调用一个函数来设置我的 USERNAME_FIELD = ''吗?
【发布时间】:2021-09-01 11:30:57
【问题描述】:

我可以调用 USERNAME_FIELD = '' 中的函数来创建可选的登录选项,使用电子邮件或电话号码吗?如果是怎么办?

【问题讨论】:

标签: python-3.x django django-models


【解决方案1】:

是的,你可以

您可以在视图中编写特殊的登录功能并使用如下查询:

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

我使用 Q django db 函数进行复杂查询,我可以在我的查询中使用 Or,例如在 up 代码中,我过滤值相等的电子邮件或值相等的用户名,所以如果 uaer 输入用户名或电子邮件,我可以找到他

在其他方面我可以使用两个查询,但它不常见 像这样:

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)

并且默认用户模型没有移动字段,您可以将移动保存为用户名或创建特殊的用户模型 或为您的用户资料创建新模型

【讨论】:

  • 如果我想使用可选选项,我应该在用户名字段中写什么? @pouria farhadi
  • 如果您想要可选的用户名或电子邮件,您可以将电子邮件另存为用户名
猜你喜欢
  • 2021-07-14
  • 1970-01-01
  • 2012-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多