Как добавить пользовательский пункт меню на панели инструментов django-admin-tools
Я хочу добавить пользовательскую ссылку в группу ModelList на django-admin-tools. Я попробовал это, но это не показывало ссылку. Что мне не хватает?
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 ответ
Решение
Я столкнулся с той же проблемой и попытался использовать 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
где угодно.