如何在 flask-admin 中隐藏 "list" 视图?

How can I hide the "list" view in flask-admin?

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

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

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

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

谢谢。

解决方案 基于@charlemagne

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

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

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

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

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