Django Admin Sortable 2 - 内联表格 - 不保存订单并显示隐藏字段

Django Admin Sortable 2 - Inline Tabular - not save order and display hidden field

我使用的是 Python 3.9、Django 3.2.8 和 Django-admin-sortable2 1.0.3。我遇到的问题是我的自定义订单字段(我将其命名为“sort_order”)在内联表格中可见,但它应该按照 Django-admin-sortable2 实现隐藏。虽然我能够拖放项目,但在保存父对象时,排序顺序没有被保存。

我的管理员 类 如下:

from django.forms.models import BaseInlineFormSet
from adminsortable2.admin import CustomInlineFormSet, SortableInlineAdminMixin

class ABCInlineFormSet(BaseInlineFormSet):
    ...
    pass

class ABCAdminInline(SortableInlineAdminMixin, admin.TabularInline):
    formset = ABCInlineFormSet
    model = models.MyModel
    fields = ["your_field"]
    ...

什么对我有用?

我在这里的一个无关问题中找到了这个问题的提示:https://github.com/jrief/django-admin-sortable2/issues/106

我在我的 TabularInline 管理中指定了一个“表单集”class。所以,我只是尝试用 django-admin-sortable2 的“CustomInlineFormSet”class 继承我的内联表单集 class。这解决了我的问题。

from adminsortable2.admin import CustomInlineFormSet, SortableInlineAdminMixin

class ABCInlineFormSet(CustomInlineFormSet, BaseInlineFormSet):
    ...
    pass


class ABCAdminInline(SortableInlineAdminMixin, admin.TabularInline):
    formset = ABCInlineFormSet
    model = models.MyModel
    fields = ["your_field"]
    ...