The blueprint name registered for the app doesn't match that registered for the route.
The app is registered with blueprint name debubtoolbar
module = Blueprint('debugtoolbar', __name__)
But the route is registered with blueprint name _debug_toolbar as implied by the endpoint name _debug_toolbar.static. Thus, in a consuming app, flask.request.blueprint returns _debug_toolbar, which does not exist in flask.current_app.blueprints.
app.add_url_rule('/_debug_toolbar/static/<path:filename>',
'_debug_toolbar.static', self.send_static_file)
Three potential fixes - both simple, but may break existing consumers
- Change the registered BP name to
_debug_toolbar
- Change the endpoint to use the BP name
debugtoolbar, and then change the two references of url_for
Ideally in both cases, you'd register the route under the context of the BP to avoid the issue going forward. For example, if you use the second solution
module.add_url_rule('/_debug_toolbar/static/<path:filename>', endpoint="static", view_func=self.send_static_file)
References in url_for, for context:
toolbar.py
self.template_context = {
'static_path': url_for('debugtoolbar.static', filename='')
}
panels/template.py
'static_path': url_for('debugtoolbar.static', filename=''),
The blueprint name registered for the app doesn't match that registered for the route.
The app is registered with blueprint name
debubtoolbarBut the route is registered with blueprint name
_debug_toolbaras implied by the endpoint name_debug_toolbar.static. Thus, in a consuming app,flask.request.blueprintreturns_debug_toolbar, which does not exist inflask.current_app.blueprints.Three potential fixes - both simple, but may break existing consumers
_debug_toolbardebugtoolbar, and then change the two references ofurl_forIdeally in both cases, you'd register the route under the context of the BP to avoid the issue going forward. For example, if you use the second solution
References in
url_for, for context:toolbar.py
panels/template.py