我试图要求一个角色来访问我定义为MethodView的视图。然而,我似乎无法正确命名路线。在
如果我只需要登录到一个装饰师那里,一切正常:
activities = Blueprint("activities", __name__, url_prefix="/activities")
class ActivitiesView(MethodView):
def get():
pass
def post():
pass
view = login_required(ActivitiesView.as_view("activities"))
activities.add_url_rule('/', view_func=view)
我得到所需的路由名,即activities.activities
:
但是,当我尝试使用roles_required
时,路由的名称被损坏,POST
方法不再列出:
view = roles_required("experimenter", ActivitiesView.as_view("activities"))
activities.add_url_rule('/', view_func=view)
>>> current_app.url_map
Map([...
<Rule '/activities/' (HEAD, OPTIONS, GET) -> activities.wrapper>,
...])
把参数转换成cd4{t}不会改变任何东西。如何使用roles_required
而不弄乱路由名称?在
执行此操作可修复路由名称,但不会修复缺少的POST方法:
view = roles_required("experimenter", endpoint="activities", ActivitiesView.as_view("activities"))
activities.add_url_rule('/', view_func=view)
解决方法是给装饰工打电话:
或者:
^{pr2}$感谢本文:
http://scottlobdell.me/2015/04/decorators-arguments-python/
相关问题 更多 >
编程相关推荐