如何在 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的仪表板图