On 15 Sep 2010, at 14:28, Rev. Johnny Healey wrote:

> According to the django docs: "If you use custom Manager objects, take
> note that the first Manager Django encounters (in the order in which
> they're defined in the model) has a special status. Django interprets
> the first Manager defined in a class as the "default" Manager, and
> several parts of Django (including dumpdata) will use that Manager
> exclusively for that model."
> 
> I may be missing something here, but this jumps out at me as being
> impossible.  The ModelBase metaclass receive the attributes as a dict,
> so isn't the original order lost?

Good question. You're right the dict has no ordering. 

If you look in django.db.models.manger though you'll see the definition of the 
Manager class:

class Manager(object):
    # Tracks each time a Manager instance is created. Used to retain order.
    creation_counter = 0
    ...

i.e. each manager stores it's own "index" and it's that which is used to 
determine order.

This trick is used a lot in Django.

http://docs.python.org/reference/datamodel.html#implementing-descriptors

Regards,
Carlton

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to