我使用django-admin-sortable 2.1.2和django 1.11。
问题是,当我尝试从管理面板更改订单时,该订单未保存。我认为这可能是由于已经存在的模型实例造成的。
这是我当前代码的一部分:
// models.py
class Category(SortableMixin):
name = models.CharField(
_('name'),
max_length=150,
)
order = models.PositiveIntegerField(
default=0,
db_index=True,
)
class Meta:
verbose_name = _('category')
verbose_name_plural = _('categories')
ordering = ['order']
// admin.py
class CategoryAdmin(SortableModelAdmin):
class Meta:
model = Category
fields = (
'name',
)
sortable = 'order'
由于对象已存在,因此默认值设置为0。我试图在Shell控制台中手动更改其顺序,但无济于事。 我想避免删除我的对象并再次创建它们。
您是否有解决办法?
答案 0 :(得分:1)
我决定使用另一个类从admin.py
文件中继承。
代替:
from suit.admin import SortableModelAdmin
class CategoryAdmin(SortableModelAdmin):
class Meta:
model = Category
fields = (
'name',
)
sortable = 'order'
我使用:
from adminsortable.admin import SortableAdmin
class CategoryAdmin(SortableAdmin):
class Meta:
model = Category
fields = (
'name',
)
sortable = 'order'
它的工作原理有些不同,但效果令我满意,并解决了我的问题。