我是web2py的新手,我试图注册没有电子邮件地址的用户(reddit样式登录),但我无法跳过auth_user中的电子邮件字段,我确实试过这些因为他们似乎很直观
auth.settings.registration_requires_email = False
auth.define_tables(username=True, signature=False,email=False)
然而,他们不存在,感谢任何帮助,谢谢。
答案 0 :(得分:1)
来自Google群组:
def user():
if request.args(0) == 'register':
for field in ['first_name', 'last_name', 'email']:
db.auth_user[field].readable = db.auth_user[field].writable = False
return dict(form=auth())
以上内容改变了default.py控制器中的user()
函数,因此它只是隐藏了注册表单中的名称和电子邮件字段(但在配置文件表单中显示它们,以便以后可以填写它们) )。
答案 1 :(得分:0)
以下是我为Customizing Auth找到的链接,其中说明了如何准确执行您想要的操作,即使用用户名进行身份验证而非电子邮件地址。
如果添加名为“username”的字段,将使用该字段代替 用于登录的“电子邮件”。如果这样做,则需要添加验证器 好:
auth_table.username.requires = IS_NOT_IN_DB(db, auth_table.username)
所以看起来你必须利用链接中讨论的 define_tables()
函数。希望这有帮助!