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

时间:2012-10-21 19:10:16

标签: django django-admin django-admin-tools

我想在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',                              
                                          ])
        ]

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题并试图像你一样使用items.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