Make models orderable in the Admin.
Included:
Abstract base Model
Admin class
Inline admin class
Admin templates
Installation
Grab from the PyPI:
pip install django-orderable
Add to your INSTALLED_APPS:
... 'orderable', ...
Subclass the Orderable class:
from orderable.models import Orderable
class Book(Orderable):
...
Note: If your subclass of Orderable has a Metaclass then make sure it subclasses the Orderable one so the model is sorted by sort_order.
Subclass the appropriate Orderable admin classes:
from orderable.admin import OrderableAdmin, OrderableTabularInline
class SomeInlineClass(OrderableTabularInline):
...
class SomeAdminClass(OrderableAdmin):
list_display = ('__unicode__', 'sort_order_display')
...
You need jQuery 1.2+ and jQuery UI 1.5+ available in the Admin for the actual moveable UI. You can either override the base admin template or add them in a Media class:
class SomeAdminClass(OrderableAdmin):
class Media:
js = (
'path/to/jquery.js',
'path/to/jquery.ui.js',
)
Common Gotchas
Adding Orderable to Existing Models
You will need to populate the required sort_order field. Typically this is done by adding the field in one migration with a default of 0, then creating a data migration to set the value to that of its primary key:
for obj in orm['appname.Model'].objects.all():
obj.sort_order = obj.pk
obj.save()
Multiple Models using Orderable
When multiple models inherit from Orderable the next() and previous() methods will look for the next/previous model with a sort order. However you’ll likely want to have the various sort orders determined by a foreign key or some other predicate. The easiest way (currently) is to override the method in question.
Release files for django-orderable 1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django-orderable-1.2.tar.gz | 6.0 kB | Details |
Release files / django-orderable-1.2.tar.gz
| Download URL | django-orderable-1.2.tar.gz |
|---|---|
| Size | 6.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
945e419a236250a710506b39aad423497840badda5f24f8eaf79bef870e25d45
|
|
BLAKE2b-256 checksum How to use checksums |
cac5c5c495079b9aeffce47d1c9c9bd5ed6b4f885445da0d841d8fa149d0e32d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |