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"]
...
我使用的是 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"]
...