【问题标题】:How to add new panels in Dashboard to display user-entry forms?如何在仪表板中添加新面板以显示用户输入表单?
【发布时间】:2014-06-10 06:12:13
【问题描述】:

我正在尝试在 open-stack-dashboard 中添加一个自定义仪表板,该仪表板将具有显示接受用户数据的表单的面板。在哪里为面板创建和定义我的 models.py,因为仪表板的 settings.py 不包含任何数据库配置?

【问题讨论】:

    标签: openstack-nova openstack-horizon


    【解决方案1】:

    编辑:如果您使用的是 Liberty 版本或更高版本,我建议不要直接附加数据库。在外部创建自己的 rest API(使用 django-rest-framework 轻松完成)并使用 angularjs 获取数据。这是 Horizo​​n 中的新标准方式。

    Horizo​​n 没有数据库。它仅依赖于对 keystone 的 API 调用以及服务目录中公开的任何 API。如果您想存储自己的模型,可以在任何 django 应用程序中以标准方式配置数据库。

    在 openstack_dashboard/local/local_settings.py 中添加 db 信息,这样您就不会篡改默认设置。

    DATABASE_ROUTERS = [...]
    DATABASES = {
        'default': {},
        'mydb1': { ... },
        'mydb2': { ... },
    }
    

    这是假设您实际上必须存储自定义数据。我猜想连接数据库或 API 以获取更多客户信息是很正常的。注册流程、帐单信息和其他自定义内容。

    还要确保您在源代码树之外创建自定义内容,并将其连接到 openstack_dashboard/local/enabled。这使它在将来升级地平线源时更清洁。

    例子:

    openstack_dashboard
    ├── ....
    horizon
    ├── ...
    mystuff
    ├── horizon
    │   ├── mydashboard
    │   │   ├── panel1
    │   │   │   ├── __init__.py
    │   │   │   ├── panel.py
    │   │   │   ├── urls.py
    │   │   │   ├── views.py
    │   │   ├── panel2
    │   │   │   ├── ....
    │   │   ├── dashboard.py
    │   │   ├── __init__.py
    │   │   ├── models.py (Unless defined elsewhere)
    │   │   ├── static
    │   │   └── templates
    

    然后在openstack_dashboard/local/enabled/_50_mydashboard.py中导入dashboard包

    # The name of the dashboard to be added to HORIZON['dashboards']. Required.
    DASHBOARD = 'mydashboard'
    # If set to True, this dashboard will be set as the default dashboard when the user logs in
    DEFAULT = False
    # If set to True, this dashboard will not be added to the settings.
    DISABLED = False
    # A dictionary of exception classes to be added to HORIZON['exceptions'].
    #ADD_EXCEPTIONS = {}
    # A list of applications to be added to INSTALLED_APPS.
    ADD_INSTALLED_APPS = ['mystuff.horizon.mydashboard']
    

    对于仪表板和面板设置: http://docs.openstack.org/developer/horizon/topics/tutorial.html

    自定义稳定主题: http://www.matthias-runge.de/custom-theme-for-horizon.html

    【讨论】:

    • 我在我的 openstack-dashboards/openstack_dashboard/dashboards 目录中添加了一个自定义仪表板,并添加了 _50_dashboard.py 以及 local/setiings.py 文件中的所有更改,但仍然没有更改出现,我得到一个 500 服务器响应(错误)。是因为我没有在自定义仪表板目录中添加任何 templatesstatic 目录吗?
    • 肯定有一个堆栈跟踪,其中包含有关出错的信息?这是在服务器启动时还是在您尝试访问某个 URL 时?模板目录会自动添加到 TEMPLATE_DIRS,所以不确定这是否有问题。
    • 了解您使用的版本可能也很好。我假设它的冰室或任何东西现在都在后备箱里。
    • 感谢您的回答..!我得到了自定义仪表板,为导致问题的面板指定了 urls.py 文件,因为它无法重定向到视图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 2019-08-24
    • 2022-12-14
    • 1970-01-01
    相关资源
    最近更新 更多