繁体   English   中英

如何在 flask-admin 中隐藏“列表”视图?

[英]How can I hide the “list” view in flask-admin?

我对 Flask 和 Flask-Admin 真的很陌生。

我的目标只是删除用户访问某个 model 的“列表”视图的可能性。 我确信一定有一些简单的方法可以做到这一点,因为有一种方法可以用于编辑、创建等,但我就是找不到。

我尝试将列表添加到“不允许的操作”中,但(如预期的那样)不起作用的“列表”实际上并不是一个操作。 还尝试了几种攻击该视图的方法(分配空表单、分配空模板和其他徒劳的任务)。

我需要的是用户在单击顶部导航栏时直接到“创建”选项卡(这是该模型唯一可用的选项卡)go。

谢谢你。

基于@charlemagne 的解决方案

@expose('/')
def index(self):
    return redirect(url_for('newpatient.create_view'))

由于列表视图是为 '/' url 呈现的默认视图,这会将用户重定向到创建视图,即使再次单击“列表”也会使列表视图实际上无法访问。

由于列表视图是索引视图,并且您需要有一个索引视图,所以不能简单地禁用它。

您可以做的是覆盖视图的index方法,并将其路由到不同的端点,例如edit_view

您还可以检查is_accessible中的端点,但这会导致用户在尝试通过菜单访问 model 时被路由到现在无法访问的列表视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM