Если текущая роль пользователя = 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 ().См. Документацию для получения дополнительной информации.