【问题标题】:Flask-Admin : Customize table name for the admin interfaceFlask-Admin : 自定义管理界面的表名
【发布时间】:2014-02-25 14:36:06
【问题描述】:

我喜欢在 Flask-Admin 的*菜单中更改名称显示。默认情况下,他似乎使用 calass 模型名称。我喜欢将其更改为更易于阅读的名称。

我已经看到,在“layout.htlm”模板中,有一个名为{{ item.name }} 的变量。这用于显示菜单的名称。有没有办法将其更改为另一个名称或在模型定义中附加名称?

使用__tablename__ 不起作用,并且会破坏内部烧瓶管理员。是否有与__repr__ 等效的名称,但用于表名而不是列。

问候

【问题讨论】:

    标签: python flask flask-admin


    【解决方案1】:

    BaseModelView 接受名为 name 的参数。如果您提供一个值,它将用于在菜单上显示。

    from flask.ext.admin.model import BaseModelView
    
    admin.add_view(BaseModelView(MyModel, 'Menu Text'))
    

    如果您使用的是 SQLAlchemy:

    from flask.ext.admin.contrib.sqla import ModelView
    
    admin.add_view(ModelView(MyModel, db.session, 'Menu Text'))
    

    这里我使用了位置参数,但我也可以轻松地使用name='Menu Text'

    【讨论】:

    • 非常感谢您快速而清晰的回答。它就像一个魅力。只是另一个问题。你说你使用了潜在的论点。我无法找到可以与 ModelView 一起使用的位置或命名参数的描述。你知道我在哪里可以找到这个文档(我正在使用 SQLAlchemy)?
    • 您不会在 Flask-Admin 文档中找到描述。位置与关键字参数是general Python concept。如果您需要更多,这个问题已经asked before
    • 你好。我的问题不是关于命名参数和位置参数之间的区别。我的问题是我在烧瓶管理文档中找不到 ModelView 类的“add_view”方法的位置描述或命名参数的描述。 (对不起我的英语。我的第一条评论不够清楚。)
    • 您是否尝试查看the source
    • 好的。我只是愚蠢! Link