How to assign Roles to new user in Flask - TypeError: __init__() takes exactly 1 argument (3 given)
How to assign Roles to new user in Flask - TypeError: __init__() takes exactly 1 argument (3 given)
我想在用户在 Flask 中注册后(使用 flask.ext.user)为他们分配角色。
我根据以下定义用户角色和角色:https://pythonhosted.org/Flask-User/roles_required_app.html#create-roles-required-app-py
但是当我尝试在用户注册后自动添加角色时:
@user_registered.connect_via(app)
def _after_reg_hook(sender, user, **extra):
new_role = UserRoles(user.id,1)
我收到以下错误:
TypeError: __init__() takes exactly 1 argument (3 given)
不幸的是,doco 示例(上面链接)没有提供在注册后添加角色的实用方法,所以不确定哪里出了问题。
SQLAlchemy 提供了一个默认构造函数,它将 named 参数分配给相应的属性。您传入了 位置 个参数。
UserRoles(user_id=user.id, role_id=1)
但是,您不应该直接实例化一个关联,事实上这个例子有点误导,因为在这种情况下没有理由为关联定义一个完整的模型,因为您没有存储任何额外的数据与协会。
而是将 Role
直接分配给 User
上的 roles
集合(或 Role
上的 users
集合)。请注意,这不会在创建重复角色时进行检查,您应该遵循 unique object 的方法。
我想在用户在 Flask 中注册后(使用 flask.ext.user)为他们分配角色。
我根据以下定义用户角色和角色:https://pythonhosted.org/Flask-User/roles_required_app.html#create-roles-required-app-py
但是当我尝试在用户注册后自动添加角色时:
@user_registered.connect_via(app)
def _after_reg_hook(sender, user, **extra):
new_role = UserRoles(user.id,1)
我收到以下错误:
TypeError: __init__() takes exactly 1 argument (3 given)
不幸的是,doco 示例(上面链接)没有提供在注册后添加角色的实用方法,所以不确定哪里出了问题。
SQLAlchemy 提供了一个默认构造函数,它将 named 参数分配给相应的属性。您传入了 位置 个参数。
UserRoles(user_id=user.id, role_id=1)
但是,您不应该直接实例化一个关联,事实上这个例子有点误导,因为在这种情况下没有理由为关联定义一个完整的模型,因为您没有存储任何额外的数据与协会。
而是将 Role
直接分配给 User
上的 roles
集合(或 Role
上的 users
集合)。请注意,这不会在创建重复角色时进行检查,您应该遵循 unique object 的方法。