I'd just like to point out that this isn't something to solve just for
many to many's, it's also for ForeignKeys.

On Nov 12, 6:58 pm, Jonas Pfeil <[EMAIL PROTECTED]> wrote:
> The idea of an ordered many-to-many field is very old [1] and has been
> proposed a lot over the years (e.g. [2], [3]). So the general
> consensus seems to be that we want such a thing. I’d like to share
> some thoughts on how to approach the whole ordering problem on the API
> side (leaving aside the JavaScript implementation issues for a
> moment).
>
> I can think of three things we would want an ordering UI for in the
> admin:
>
>  * A yet to be devised OrderedManyToMany field
>  * A ManyToMany field with an intermediary model
>  * Ordinary models (in the change list)
>
> OrderedManyToMany
> =================
>
> We could either subclass ManyToMany or introduce another option (like
> ordered=True). I think subclassing is better, because of the extra
> functions we could add to manipulate the many-to-many set. Like:
>
>  * move_up/down(item) – Moves the item one slot up or down in the list
>  * swap(a, b) – Swaps the places of item a and b
>  * insert(item, position) – Puts the item at the stated position,
> pushing the other items down (or we just add a position argument to add
> () and create())
>  * push/pop() – Or just add/create() without position argument and
> remove() with no arguments at all
>
> Of course the existing functions like all(), assignment of a list to
> the field and so on should all respect the order too.
>
> Many-to-many fields with intermediary models should also return the
> correct order when reading the set, even if they do not support create
> (), add() and assignment of a list.
>
> Ordinary models and ManyToMany fields with an intermediary model
> ==================================================
>
> These two use cases share the need to define the field which should be
> used for ordering. I found it difficult to come up with a name that
> can’t be confused with 'ordering' too easily. How about this:
>
> class Membership(models.Model):
>     order = models.IntegerField()
>
>     class Meta:
>         order_control_field = ‘order’
>
> On a side note: When the change list in the admin is ordered on
> something else than the order_control_field, an ordering UI stops
> making sense (see description on [4]). A solution would be to just
> switch off ordering on other fields if order_control_field is set. For
> inlines this problem is nonexistent as the admin currently doesn’t
> reorder the inlined items when you click the column header.
>
> Ok, these are my ideas on how ordering could work for the user. What
> do people think?
>
> Cheers,
>
> Jonas
>
> [1]http://code.djangoproject.com/ticket/13
> [2]http://code.djangoproject.com/ticket/6118
> [3]http://groups.google.am/group/django-developers/browse_thread/thread/...
> [4]http://www.djangosnippets.org/snippets/998/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to