Python 向用户添加角色(MongoEngine)

Python 向用户添加角色(MongoEngine),python,flask,mongoengine,flask-security,Python,Flask,Mongoengine,Flask Security,我构建了一个小api,应该能够将角色添加到用户: user = user_datastore.find_user(email=flask.request.args.get('email')) role = user_datastore.find_role(flask.request.args.get('role')) result = user_datastore.add_role_to_user(user, role) (角色和电子邮件通过api发送)。它会找到正确的用户和角色对象,结果为T

我构建了一个小api,应该能够将角色添加到用户:

user = user_datastore.find_user(email=flask.request.args.get('email'))
role = user_datastore.find_role(flask.request.args.get('role'))
result = user_datastore.add_role_to_user(user, role)
角色
电子邮件
通过api发送)。它会找到正确的用户和角色对象,结果为
True
,但不会将任何内容添加到用户的角色列表中,该列表将保留
[]
,不包含任何角色

我的设置类似于/直接基于

这一定很简单,但我似乎找不到:/


BR Carst

可能是我遗漏了什么,但您需要提交更改,对吗

user = user_datastore.find_user(email=flask.request.args.get('email'))
role = user_datastore.find_role(flask.request.args.get('role'))
result = user_datastore.add_role_to_user(user, role)

# to save in database, you must commit (assuming 'db' is the object)
db.session.commit()

正如Matt W所说,这似乎是一个bug。我在github中记录了一个问题,地址为:

可能
将角色添加到用户中
不要保存对象(请参阅),您必须调用
user.save()
。我的代码中似乎有一个bug。提交一个问题?嗨,codegeek,这对sqlalchemy是正确的,但在使用mongoengine时不是。因此,在这种特殊情况下,情况并非如此(但可能是其他人在使用sql db时遇到此问题)