【发布时间】:2021-09-01 11:30:57
【问题描述】:
我可以调用 USERNAME_FIELD = '' 中的函数来创建可选的登录选项,使用电子邮件或电话号码吗?如果是怎么办?
【问题讨论】:
-
请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
标签: python-3.x django django-models
我可以调用 USERNAME_FIELD = '' 中的函数来创建可选的登录选项,使用电子邮件或电话号码吗?如果是怎么办?
【问题讨论】:
标签: python-3.x django django-models
是的,你可以
您可以在视图中编写特殊的登录功能并使用如下查询:
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)
并且默认用户模型没有移动字段,您可以将移动保存为用户名或创建特殊的用户模型 或为您的用户资料创建新模型
【讨论】: