登录时web2py创建帐户

时间:2016-04-07 06:09:33

标签: web2py

目前,我正在使用web2py制作网络应用程序。

我想要做的是在用户登录时创建帐户。

我知道在“auth()”中,有“http://.../[app]/default/user/register”。

如果用户没有登录,则此“注册”将作为“注册”。 但是,如果用户已经登录,则“注册”将作为“更改帐户信息”。

即使我已经登录,有没有办法让“注册”为“注册”?

由于

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可能不希望使用auth.register(),因为这是针对自己注册的用户。相反,你可以尝试这样的东西(在控制器文件中):

def add_user():
    form = SQLFORM(db.auth_user,
                   fields=['first_name', 'last_name', 'email', 'password'])
    if form.validate():
        user = auth.get_or_create_user(form.vars, login=False, get=False)
        response.flash = 'User %s created' % user.id if user else 'User already exists'
    return dict(form=form)

.process()不同,默认情况下,.validate()方法不会在数据库中插入任何数据。在这种情况下,我们通过auth.get_or_create_user()进行插入。我们必须设置login=False以便登录不会切换到新帐户,我们设置get=False以便在用户已经存在的情况下返回None(允许特殊错误消息到在那种情况下显示。)