Authentication Web2py,验证两种类型的配置文件

Authentication Web2py,验证两种类型的配置文件,authentication,web2py,Authentication,Web2py,在一个应用程序中,我需要创建两种类型的帐户,比如说用户和导师。 他们每个人都应该能够注册/登录/。。。数据库中不同表定义的用户/导师帐户 e、 g [app]/user/register应提供包含以下字段的表单:用户名、电子邮件、密码、爱好 [app]/tutor/register应提供一份包含以下字段的表单:用户名、电子邮件、通行证、姓名、姓氏、电话 Web2py auth服务允许使用可自定义的auth\u用户表。是否有一种方法可以根据控制器在一个应用程序中分别使用两个表 字段auth.set

在一个应用程序中,我需要创建两种类型的帐户,比如说用户和导师。 他们每个人都应该能够注册/登录/。。。数据库中不同表定义的用户/导师帐户

e、 g

[app]/user/register
应提供包含以下字段的表单:
用户名、电子邮件、密码、爱好
[app]/tutor/register
应提供一份包含以下字段的表单:
用户名、电子邮件、通行证、姓名、姓氏、电话

Web2py auth服务允许使用可自定义的
auth\u用户
表。是否有一种方法可以根据控制器在一个应用程序中分别使用两个表


字段
auth.settings.table\u user
包含auth\u table的参考,但我可能不应该将其用于此目的。

auth系统不是设计为以这种方式工作的。相反,最好将两种用户类型的所有字段都放在单个
auth_user
表中,然后根据上下文有选择地将字段的
可读
可写
属性设置为
True
False

在定义身份验证的模型文件中:

user_extra_fields = [Field('hobby'), ...]
tutor_extra_fields = [Field('telephone', ...]

auth.settings.extra_fields['auth_user'] = (
    [Field('user_type', requires=IS_IN_SET(['User', 'Tutor']))] +
    user_extra_fields + tutor_extra_fields)
在管理身份验证功能的控制器中:

def user():
    if request.args(0) in ['register', 'profile']:
        hidden_fields = (user_extra_fields if request.args(1) == 'tutor'
                         else tutor_extra_fields)
        for field in hidden_fields:
            field.readable = field.writable = False
    return dict(form=auth())

Auth系统不是设计成这样工作的。相反,最好将两种用户类型的所有字段都放在单个
auth_user
表中,然后根据上下文有选择地将字段的
可读
可写
属性设置为
True
False

在定义身份验证的模型文件中:

user_extra_fields = [Field('hobby'), ...]
tutor_extra_fields = [Field('telephone', ...]

auth.settings.extra_fields['auth_user'] = (
    [Field('user_type', requires=IS_IN_SET(['User', 'Tutor']))] +
    user_extra_fields + tutor_extra_fields)
在管理身份验证功能的控制器中:

def user():
    if request.args(0) in ['register', 'profile']:
        hidden_fields = (user_extra_fields if request.args(1) == 'tutor'
                         else tutor_extra_fields)
        for field in hidden_fields:
            field.readable = field.writable = False
    return dict(form=auth())