Flask-Admin can_create = True только для данного пользователя
Я использую Flask-Admin в сочетании с Flask-Login и mongoengine.
Я хочу настроить представления в зависимости от пользователей. Далее пример с can_create
, что позволяет создавать модели.
class MyModelView(ModelView):
column_exclude_list = ['password']
def is_accessible(self):
if (login.current_user.login != 'admin'):
can_create=False
return login.current_user.is_authenticated()
Такой фрагмент кода не имеет никакого эффекта: все пользователи могут создавать, без разницы между пользователями с правами администратора и без них.
Большое спасибо за любые подсказки о том, как можно разрешить создание модели только данному пользователю.
1 ответ
Похоже, вы только что создали локальную переменную can_create
так что вы можете попробовать self.can_create = False
, Но flask-admin
создать один экземпляр View
и это может быть проблемы с параллелизмом. Однако лучше отдельную логику для проверки доступности и изменения состояния просмотра. Так что, вероятно, лучше использовать следующий код:
class MyModelView(ModelView):
column_exclude_list = ['password']
def is_accessible(self):
return login.current_user.is_authenticated()
@property
def can_create(self):
return login.current_user.login == 'admin'