Я пытаюсь получить роль для доступа к представлению, которое я определил как MethodView. Однако, похоже, я не могу правильно назвать маршрут.flask-security role_required with pluggable views
Если я просто требуют регистрации с декоратора все работает:
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
:
>>> current_app.url_map
Map([...
<Rule '/activities/' (HEAD, POST, OPTIONS, GET) -> 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>,
...])
Переключение аргументов на add_url_rule
ничего не меняет. Как я могу использовать roles_required
, не испортив название маршрута?
Выполнение этого фиксирует название маршрута, но не метод отсутствует POST:
view = roles_required("experimenter", endpoint="activities", ActivitiesView.as_view("activities"))
activities.add_url_rule('/', view_func=view)