Updated documentation to include gotchas for existing models

master
Brandon Taylor 2012-12-25 22:10:26 -05:00
parent c34d067e10
commit 0ae9b5819d
2 changed files with 33 additions and 13 deletions

44
README
View File

@ -35,12 +35,12 @@ have an inner Meta class that inherits from ``Sortable.Meta``
#models.py #models.py
from adminsortable.models import Sortable from adminsortable.models import Sortable
class MySortableClass(Sortable): class MySortableClass(Sortable):
class Meta(Sortable.Meta) class Meta(Sortable.Meta)
title = models.CharField(max_length=50) title = models.CharField(max_length=50)
def __unicode__(self): def __unicode__(self):
return self.title return self.title
@ -54,13 +54,13 @@ even if that model does not inherit from Sortable:
class Category(models.Model): class Category(models.Model):
title = models.CharField(max_length=50) title = models.CharField(max_length=50)
... ...
class Project(Sortable): class Project(Sortable):
class Meta(Sortable.Meta) class Meta(Sortable.Meta)
category = SortableForeignKey(Category) category = SortableForeignKey(Category)
title = models.CharField(max_length=50) title = models.CharField(max_length=50)
def __unicode__(self): def __unicode__(self):
return self.title return self.title
@ -79,10 +79,10 @@ To enable sorting in the admin, you need to inherit from SortableAdmin:
from django.contrib import admin from django.contrib import admin
from myapp.models import MySortableClass from myapp.models import MySortableClass
from adminsortable.admin import SortableAdmin from adminsortable.admin import SortableAdmin
class MySortableAdminClass(SortableAdmin): class MySortableAdminClass(SortableAdmin):
"""Any admin options you need go here""" """Any admin options you need go here"""
admin.site.register(MySortableClass, MySortableAdminClass) admin.site.register(MySortableClass, MySortableAdminClass)
@ -90,7 +90,7 @@ To enable sorting on TabularInline models, you need to inherit from
SortableTabularInline: SortableTabularInline:
from adminsortable.admin import SortableTabularInline from adminsortable.admin import SortableTabularInline
class MySortableTabularInline(SortableTabularInline): class MySortableTabularInline(SortableTabularInline):
"""Your inline options go here""" """Your inline options go here"""
@ -99,7 +99,7 @@ To enable sorting on StackedInline models, you need to inherit from
SortableStackedInline: SortableStackedInline:
from adminsortable.admin import SortableStackedInline from adminsortable.admin import SortableStackedInline
class MySortableStackedInline(SortableStackedInline): class MySortableStackedInline(SortableStackedInline):
"""Your inline options go here""" """Your inline options go here"""
@ -111,6 +111,25 @@ suggest NOT using SortableStackedInline. I'm currently working on
a way to make this more usable. a way to make this more usable.
Potential Gotcha
=============
If you have an existing model that you're now making Sortable, existing
rows won't have an "order" attribute. Django-admin-sortable depends on
being able to leverage an aggregate Max to determine if a model is sortable.
A good rule of thumb if you're adding django-admin-sortable to an existing
project is to create a Data Migration using South to set the "order" column
according to your needs.
For example, if you have a SortableForeignKey field, you would need to set
the "order" column relative to that field, instead of setting the "order"
column in linear succession.
See: http://south.readthedocs.org/en/latest/tutorial/part3.html for more
information on Data Migrations.
Rationale Rationale
============= =============
Other projects have added drag-and-drop ordering to the ChangeList Other projects have added drag-and-drop ordering to the ChangeList
@ -130,9 +149,10 @@ Status
admin-sortable is currently used in production. admin-sortable is currently used in production.
What's new in 1.3.7? What's new in 1.3.8?
============= =============
- CSS fixes for tabular inlines courtesty of @ionelmc: https://github.com/ionelmc - CSS fixes for tabular inlines courtesty of @ionelmc: https://github.com/ionelmc
- Updated documentation
Features Features
============= =============
@ -160,5 +180,5 @@ Requires django-appmedia, included
License License
============= =============
The admin-sortable app is released The admin-sortable app is released
under the Apache Public License v2. under the Apache Public License v2.

View File

@ -1,4 +1,4 @@
VERSION = (1, 3, 7) # following PEP 386 VERSION = (1, 3, 8) # following PEP 386
DEV_N = None DEV_N = None