Flask-Appbuilder - требуется роль безопасности пользователя в представлении - PullRequest
0 голосов
/ 05 мая 2019

Если текущая роль пользователя = admin, то показать все записи в таблице.Если нет, то ограничьте количество строк созданным пользователем.

Я могу получить имя пользователя, если я определю функцию в классе представления, но понадоблюсь до составления списка.См. Исходный код ниже.

from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from app import appbuilder, db
from app.models import Language
from wtforms import validators, TextField
from flask import g
from flask_appbuilder.security.sqla.models import User

def get_user():
    return g.user

class LanguageView(ModelView):
    datamodel = SQLAInterface(Language)
    list_columns = ["id", "name"]
    base_order = ("name", "asc")
    page_size = 50

    #This is the part that does not work - unable to import app Error: Working outside of application context
    #If the user role is admin show all, if not filter only to the specific user
    if g.user.roles != "admin":
        base_filters = [['created_by', FilterEqualFunction, get_user]]    

Это ошибка, которую я получаю:

Не удалось импортировать приложение Ошибка: Работа вне контекста приложения.

Обычно этоозначает, что вы пытались использовать функциональность, необходимую для взаимодействия с текущим объектом приложения.Чтобы решить эту проблему, настройте контекст приложения с помощью app.app_context ().См. Документацию для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...