У Django нет встроенного способа сделать это, о котором я знаю, но я могу придумать несколько способов, как вы могли бы сделать что-то один раз, вместо необходимости вручную изменять множество наборов полей.
Один из подходов - использовать javascript для переписывания разметки страницы. Возможно, javascript может иметь список имен полей, и всякий раз, когда он находит одно из них, он скрывает поле и его метку и добавляет кнопку на страницу для переключения этих невидимых полей.
Другой подход будет включать в себя Python. Обычно вы просто указываете атрибуты fieldsets в админке как кортеж. Но вы можете указать это как импортированную функцию, которая принимает обычный кортеж в качестве аргумента. В вашем файле настроек вы можете указать список имен полей, которые вы хотите скрыть. Затем вам нужно написать функцию, которая возвращает измененный кортеж, перемещая любые поля, которые соответствуют одному из ваших имен полей, в новый набор полей вместе с классом коллапса.
Например, в вашем классе администратора вы можете сделать что-то вроде этого (вам нужно написать и импортировать hide_fields).
fieldsets = hide_fields(
(None,
{'fields':('title', 'content')}
)
)
В конечном итоге это может быть истолковано следующим образом, если предположить, что содержимое в файле настроек является чем-то, что вы хотите скрыть:
fieldsets = (
(None,
{'fields':('title',)}
),
('Extra',
{
'fields': ('content',),
'classes':('collapse',),
}
),
)