Любой способ добавить формы с вкладками в администрацию сайта Django? - PullRequest
3 голосов
/ 08 апреля 2010

При использовании административных форм Django «из коробки» страницы «формы изменений» могут быть довольно длинными для сложных моделей (с большим количеством полей).

Я бы хотел использовать вкладки в «форме изменения», чтобы все было более читабельно (группировать поля по вкладкам ...)

Вместо того, чтобы делать все это самостоятельно, изменяя шаблон администратора 'change_form.html', мне было интересно, кто-то уже сделал это и хотел бы поделиться кодом, или уже существует существующий плагин Django.

Заранее спасибо за ответ

Ответы [ 3 ]

3 голосов
/ 08 апреля 2010

Я не уверен, что это легко сделать «из коробки», но почему бы не поместить поля в наборы полей и сделать их складными? Возможно, он немного менее идеален, но работает из коробки. В учебнике есть пример :

class PollAdmin(admin.ModelAdmin):
fieldsets = [
    (None,               {'fields': ['question']}),
    ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]

В этом примере набор полей «Информация о дате» можно свернуть только до строки заголовка.

2 голосов
/ 28 июля 2015

Я написал небольшое приложение, сделать это очень легко: https://github.com/omji/django-tabbed-admin

Он пытается работать так же, как и для наборов полей, чтобы сохранить логику django. Вы просто наследуете свой класс администратора от модели с вкладками. Вы также можете смешать его со строками и заказать их так, как вы хотите. Например:

class BandAdmin(TabbedModelAdmin):

    tab_overview = (
        (None, {
            'fields': ('name', 'bio', 'style')
        }),
        MusicianInline,
        ('Contact', {
            'fields': ('agent', 'phone', 'email')
        })
    )
    tab_album = (
        AlbumInline,
    )
    tabs = [
        ('Overview', tab_overview),
        ('Albums', tab_album)
    ]
2 голосов
/ 09 мая 2012

Я знаю три варианта сделать это:

  • Сделайте это самостоятельно, переопределив шаблон admin / change_form.html
  • Посмотрите на django-admin-tabs
  • Попробуйте django-admintools-bootstrap (ветка 0.0.2), если вы заинтересованы в использовании темы Twitter Bootstrap в django-admin (что здорово!)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...