我正在使用web2py,我目前有一个登录表单,其中包含电子邮件地址和密码。我需要能够接受用户名或电子邮件地址才能登录。我在这里找到了解决方案: http://www.web2pyslices.com/slice/show/1642/login-with-username-and-email
我在那里包含了代码,但是当我输入用户名而不是电子邮件时,它会显示错误无效的电子邮件。
我想如果我知道它在做电子邮件检查的地方,我可能能够解决它。非常感谢任何帮助。
答案 0 :(得分:0)
答案可能为时不晚,但是我遇到了同样的问题,并且找到了解决方法:
首先,我检查了输入内容是否为有效的电子邮件(电子邮件流),如果是,则继续(有效路径)。当输入的是用户名时,我会在数据库中搜索与该用户名关联的用户,并获取其电子邮件。之后,我将电子邮件替换为 vars 和 post_vars 。
例如:
```python def user():
if 'login' in request.args:
if request.env.method=='POST':
if request.vars.email and not IS_EMAIL()(request.vars.email)[1]:
try:
email = db(db.auth_user.username==request.vars.email).select(db.auth_user.email).first().as_dict()['email']
request.post_vars.email = request.vars.email = email
except:
pass
```