NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2758 most downloaded on PyPI
Generic drag-and-drop sorting for the List, the Stacked- and the Tabular-Inlines Views in the Django Admin
Last release 8 months ago
22 Jan 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 59 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
13 years old
85 releases · first in 2013
Bump to version 2.3.1 Jrief patch 3
Bump to version 2.3.1
Jrief patch 3
django-compress and django-sass-processor raises errors during run of compress or compilescss
management command.fix #397: Remove Django popup when using list action after dragging items in list view.
default_order_field might not be set on model.One column per quarter.
Remove paths docs and parler_example from installable package.
docs and parler_example from installable package.- Add support for Django-5.2.
Fix adding new models with inlines: automatically set order of new entries.
Merge pull request #419 from jrief/version-2.2.5
Merge pull request #419 from jrief/version-2.2.5
Bum to version 2.2.5
Fix: Selected ordering is not always preserved when using "Save as new" in inline admin.
Add compatibility for Django-5.1
Fix: Coalesce type error on default_ordering_field.
default_ordering_field.Fix: With setting DEBUG = True, loading the unminimized JavaScript files failed. They now are added during build time.
DEBUG = True, loading the unminimized JavaScript files failed. They now are added during build
time.Drop support for Django-4.1 and lower.
Upgrade all external dependencies to their latest versions.
locator.Do not create sourcemaps in production build.
Folder testapp is not published on PyPI anymore.
testapp is not published on PyPI anymore.Fix: In combination with django-nested-admin integration fails with an error in inlien formsets.
- Yanked.
- Add support for Django-4.2.
Fix: In SortableInlineAdminMixin.get_fields(), convert potential tuple to list in order to append extra elements.
SortableInlineAdminMixin.get_fields(), convert potential tuple to list in order to append extra elements.Fix: It not is not possible anymore, to move items beyond the last item, i.e. after an empty extra rows for new items or even after the row with the "
Fix #328: Replace uglify against terser to minify JavaScript files.
uglify against terser to minify JavaScript files.Fix #320: Adding Jinja2 as template engine didn't work because it is unable to handle file references using pathlib.Path.
pathlib.Path.Enlarge top/down buttons on top of header of SortableTabularInline.
SortableTabularInline.Introduce classes adminsortable2.admin.SortableStackedInline and adminsortable2.admin.SortableTabularInline to resort items to the begin or end of the
adminsortable2.admin.SortableStackedInline and adminsortable2.admin.SortableTabularInline
to resort items to the begin or end of the list of those inlines.Fix: When using an InlineAdmin with a self defined form, the default ordering has been ignored.
InlineAdmin with a self defined form, the default ordering
has been ignored.InlineAdmin is a proxy model.Fix \#309: Prevent JavaScrip error when using *InlineAdmin without sortable list view.
pathlib instead of os.path.Fix \#304: ModelAdmin not inheriting from SortableAdminMixin prevented sortable Stacked-/TabluraInlineAdmin be sortable.
Fix \#303: Use CSRF-Token from input field rather than from Cookie.
Fix \#302: Django's ManifestStaticFilesStorage references missing file adminsortable2.js.map.
adminsortable2.js.map.Drop support for Django 3.2 and lower.
Nothing published for this version
Fix #294_: issue in 1.0.3 where install_requires unintentionally dropped django 2.2
#294_: issue in 1.0.3 where install_requires unintentionally dropped django 2.2.. _#294: https://github.com/jrief/django-admin-sortable2/issues/294
Add Django 4.0 support by @amureki in https://github.com/jrief/django-admin-sortable2/pull/290
Full Changelog: https://github.com/jrief/django-admin-sortable2/compare/1.0.2...1.0.3
Fix regression introduced in 1.0.1, adding double item rows on SortableInlineAdminMixin and TabularInline.
Fix CSS classes change introduced in Django-2.1.
Drop support for Python-2.7, 3.4 and 3.5.
Fix \#207: Last item not displayed in stacked- and tabular inline admins, if model doesn\'t have add permission.
- Add support for Django-3.1.
Fix \#241: Move items when the order column is not first.
- Add support for Django-3.0.
Fix \#208: Correctly apply custom css classes from the InlineModelAdmin.classes attribute then using StackedInline.
InlineModelAdmin.classes attribute then using StackedInline.Fix \#220: If model admin declares list_display_links = None, no link is autogenerated for the detail view.
list_display_links = None, no link is autogenerated for the detail view.Fully adopted and tested with Django-2.2
Fix issue with JavaScript loading in Django-2.2.
Add support for Django-2.0 and Django-2.1.
Added jQuery compatibility layer for Django-2.1.
- Dysfunctional.
Fix \#183: Use mark_safe for reorder div.
mark_safe for reorder div.Fix: Method adminsortable2.admin.SortableInlineAdminMixin.get_fields always return a list instead of sometimes a tuple.
adminsortable2.admin.SortableInlineAdminMixin.get_fields always return
a list instead of sometimes a tuple.\#171: Adhere to Content Security Policy best practices by removing inline scripts.
Fixes \#137: Allow standard collapsible tabular inline.
Fix \#164: TypeError when display_list in admin contains a callable.
Fix \#162: In model admin, setting actions to None or [] breaks the sortable functionality.
actions to None or [] breaks the sortable functionality.Fix \#159: Make stacked inline\'s header more clear that it is sortable.
Fix \#155: Sortable column not the first field by default.
Fix \#147: Use current admin site name instead of admin.
Nothing published for this version
Fix \#139: Better call of post_save signal.
Fix \#135: Better call of pre_save signal.
./manage.py reorder ..., name the model using app_label.model_name rather than
requiring the fully qualified path.adminsortable2.admin.SortableAdminMixin renamed method update to update_order,
to prevent potential naming conflicts.Add class PolymorphicSortableAdminMixin so that method get_max_order references the ordering field from the base model.
PolymorphicSortableAdminMixin so that method get_max_order references the
ordering field from the base model.Fix: Drag\'n Drop reordering now send \[pre\|post\]\_save signals for all updated instances.
Your coding agent can read these notes before it upgrades. Set up the MCP server →