У меня есть ряд объектов, User
, Role
, Post
, Category
и, возможно, больше, и имеют ряд взглядов администратора, которые в основном только отображать и обрабатывать формы, связанные с этими объектами. Мой текущий код выглядит так:Оптимизировать и уменьшить избыточность в термосе маршрутизация
admin = Blueprint('admin', __name__)
@login_required
@admin.route('/users')
def users():
return list_object(User)
@roles_required('admin')
@admin.route('/users/new', methods = ['GET', 'POST'])
def create_user():
return create_object(User, UserForm)
@roles_required('admin')
@admin.route('/users/delete/<int:user_id>', methods = ['GET', 'POST'])
def delete_user(user_id):
return delete_object(User, user_id)
@roles_required('admin')
@admin.route('/users/<int:user_id>', methods = ['GET', 'POST'])
def edit_user(user_id):
return edit_object(User, user_id, UserForm)
@login_required
@admin.route('/categories')
def categories():
return list_object(Category)
@roles_accepted('admin', 'editor')
@admin.route('/categories/new', methods = ['GET', 'POST'])
def create_cat():
return create_object(Category, CategoryForm)
@roles_accepted('admin', 'editor')
@admin.route('/categories/delete/<int:cat_id>', methods = ['GET', 'POST'])
def delete_cat(cat_id):
return delete_object(Category, cat_id)
@roles_accepted('admin', 'editor')
@admin.route('/categories/<int:cat_id>', methods = ['GET', 'POST'])
def edit_cat(cat_id):
return edit_object(Category, cat_id, CategoryForm)
И так далее. edit_object
, list_object
& c также определены. Мой вопрос: как я могу уменьшить избыточность здесь? @login_required
и @roles_required
предоставляются flask-security
. Как я могу оптимизировать этот код?