Django Admin -> Изменить порядок полей, включая встроенные поля - PullRequest
7 голосов
/ 30 июля 2009

У меня есть модель «Персона», которая имеет отношение «один ко многим» с другими моделями, например Address. Я хочу отредактировать эти модели на той же странице, что и Person, что я уже могу сделать через встроенные функции Но я также хочу изменить порядок полей.

Я хочу, чтобы (встроенное) поле «Адрес» было третьим элементом в списке, но для

поля ('first_name', 'last_name', 'Adress_Inline', 'национальность' и т. Д.) Я получаю это: PersonAdmin.fields »ссылается на поле« Address_Inline », которое отсутствует в форме.

Есть ли способ изменить порядок полей и получить определенные встроенные поля между «обычными» полями модели?

Спасибо!

Ответы [ 4 ]

0 голосов
/ 12 марта 2018

Пользовательские наборы полей django для определения порядка полей для просмотра и добавления / редактирования вида объекта.

class YourCustomClass(admin.ModelAdmin):

    models = Your_Model
    fieldsets = ((None, {'fields': ('image', 'name',)}),)

    add_fieldsets = ((None, {'fields': ('name', 'image',)}),)
0 голосов
/ 26 августа 2009

Вы можете сделать это с помощью JavaScript. Вам нужно переопределить шаблон и, возможно, добавить тег div. Затем жестко закодируйте ваш div, который вы хотите скопировать, и затем спрячьте оригинальный div (со встроенным). Я надеюсь, что это помогает.

0 голосов
/ 13 июня 2014

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

Вы должны расширить шаблон change_form.html, чтобы сделать это, другого пути нет.

0 голосов
/ 30 июля 2009

Вы должны будете вручную расширить шаблон администратора (change_form.html) и позиции жесткого кода в нем AFAIK, вы не можете вставить встроенные наборы форм в середину родительской формы.

...