Django Admin Sortable 2 - Inline Tabular - не сохранять порядок и отображать скрытое поле
Я использую Python 3.9, Django 3.2.8 и Django-admin-sortable2 1.0.3. Я столкнулся с проблемой, что мое пользовательское поле заказа (я назвал его "sort_order") было видно в инлайн табличных формах, но оно должно было быть скрыто в соответствии с реализацией Django-admin-sortable2. И хотя я мог перетаскивать элементы, но при сохранении родительского объекта порядок сортировки не сохранялся.
Что сработало для меня?
Я нашел подсказку для этой проблемы в немного несвязанном вопросе здесь: https://github.com/jrief/django-admin-sortable2/issues/106
Я указал "набор форм" в своем классе администратора TabularInline. Поэтому я просто попробовал унаследовать свой класс inline formset от класса "CustomInlineFormSet" из django-admin-sortable2. Что решило проблему для меня.
from adminsortable2.admin import CustomInlineFormSet, SortableInlineAdminMixin
class ABCInlineFormSet(CustomInlineFormSet, BaseInlineFormSet):
...
pass
class ABCAdminInline(SortableInlineAdminMixin, admin.TabularInline):
formset = ABCInlineFormSet
model = models.MyModel
fields = ["your_field"]
...