Open juledwar opened 1 year ago
Can't you set this property in the base class?
I guess a more comprehensive code sample would help explaining the problem.
Can't you set this property in the base class?
You can't do that because the blueprint is not known/available there.
I guess a more comprehensive code sample would help explaining the problem.
The bottom line is that the view class doesn't know to which blueprint it's attached, so views cannot calculate their full endpoint, I need this copypasta code in every view. Instead, it could be refactored in a base view class in such a way that it's calculated when needed.
I'm trying to convert my Flask app from flask-restful, and I need to use
flask.url_for
in some of my pagination helper code that's in my views' base class.The endpoint value that
url_for
takes is basically{blueprint.name}.{viewclass.__name__}
and in fact this value is calculated and used in theBlueprint.register_views_in_doc
method. However while it''s easy to get the view class name, the blueprint name under which the view is registered is not available to the view itself, which means the endpoint name can't be calculated.At the moment I am basically copy/pasting this same code in every view definition:
but I'd ideally like to make this more automatic by injecting the
full_endpoint
property when theBlueprint.route
code runs to register the view.