我将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()
这样的代码无效:所有用户仍然可以创建,管理员和非管理员用户之间没有区别。
非常感谢任何关于如何仅允许给定用户创建模型的提示。
答案 0 :(得分:8)
看起来您刚刚创建了局部变量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'