如何在 django-admin-tools 仪表板上添加自定义菜单项

Posted

技术标签:

【中文标题】如何在 django-admin-tools 仪表板上添加自定义菜单项【英文标题】:How to add a custom menu item on django-admin-tools dashboard 【发布时间】:2012-10-11 15:47:11 【问题描述】:

我想为 django-admin-tools 上的 ModelList 组添加自定义链接。我试过了,但它没有显示链接。我错过了什么?

class CustomIndexDashboard(Dashboard):
    columns = 2

    def __init__(self, **kwargs):
        Dashboard.__init__(self, **kwargs)

        grupo = modules.ModelList('Matrículas', 
           [ 'core.models.Aluno',
             'core.models.Matricula',
             'core.models.ModuloAtivo',
           ])

        item = items.MenuItem(u"Orçamentos", "%s%s" % (reverse('admin:core_matricula_changelist'), "?status__exact=O" ) )

        grupo.children += [ item ] 

        self.children += [ grupo, 

          modules.ModelList('Controle de Presença', [ 
                                          'core.models.Aula',
                                          'core.models.Pauta',
                                          'core.models.Presenca',
                                          'core.models.PautaModulo',                              
                                          ])
        ]

【问题讨论】:

它是否显示应用程序的模型而不是链接?还是根本不显示任何东西? 正确显示所有模型。但是“Orçamentos”显示为文本而不是链接。 【参考方案1】:

我遇到了同样的问题并尝试像你一样使用items.MenuItem,但我得到了一个错误:

“MenuItem”对象没有属性“id”。

然后我来了以下解决方案: 即使我们只需要一个链接,我们也应该创建LinkList

link = modules.LinkList(
            title='', # the title is empty for better looking
            children=[
                [_(u'My link'), reverse('admin:custom_view')],
            ]
        )

这是我们的ModelList

models = modules.ModelList(
            models=(
                'app.models.Model1',
                'app.models.Model2',
                )
            )

还有Group,我们将链接与模型联系起来:

a_group = modules.Group(
            title=u'My group',
            display="stacked",
            children=[
                models,
                link
            ]
        )

然后在任何你想要的地方使用a_group

【讨论】:

以上是关于如何在 django-admin-tools 仪表板上添加自定义菜单项的主要内容,如果未能解决你的问题,请参考以下文章

python django-admin-tools的仪表板图

django-admin-tools 和 django-grappelli 的比较

更改 django-admin-tools 的语言环境

如何共享 Superset 仪表板或图表?

如何在 iOS 中制作如下图所示的仪表视图?

如何从 grafana 的仪表板列表中删除登陆仪表板?