如何获取url_for()来识别python flask中的正确函数?

时间:2019-02-15 20:11:57

标签: python flask decorator

我已经为烧瓶写了一个装饰器:

def requires_permission(permission):
    def decorator(function):
        def decorated_function(*args, **kwargs):
            if not current_user.is_authenticated:
                return redirect('/auth/login')
            elif not getattr(current_user.permissions, permission):
                return "you need to be an admin", 401
            else:
                return function(*args, **kwargs)
        return decorated_function
    return decorator

这用于装饰路线,即

@bp.route('/')
@requires_permission('admin')
def dashboard(company=None):
    return "Hello, World!"

这一切都完全正常,但是现在当我尝试通过以下方式访问路线时:

return redirect(url_for('main.dashboard', company = company))

找不到路线。我相信是因为我的装饰器隐藏了底层函数,如果通过URL访问的话,所有函数都可以按预期工作。

任何帮助都将有助于正确地公开底层过程。

谢谢

0 个答案:

没有答案