#10506: Understand correct auto-manager class for inherited models
------------------------------------------+---------------------------------
 Reporter:  mtredinnick                   |       Owner:  mtredinnick
   Status:  new                           |   Milestone:  1.1        
Component:  Database layer (models, ORM)  |     Version:  SVN        
 Keywords:                                |       Stage:  Unreviewed 
Has_patch:  0                             |  
------------------------------------------+---------------------------------
 When creating a subclass of a model with a default manager that has
 `use_for_related_fields = True`, and if the subclass has no explicit
 manager set, we should use the class of the parent's manager. This is
 consistent with every other time we create an automatic manager (in fact,
 the docs added in r10057 hint that we already do this, but it's not quite
 true for subclasses yet).

 For multiple base classes, we walk them all and choose the most derived
 manager satisfying this constraint. It should subclass all the other
 managers that also do. If there is no such manager (e.g. two different
 managers subclassing `django.db.models.Manager`), we raise an error and
 the user has to specify the default manager themselves. This is because
 there would be no way to ensure that an appropriate `get_query_set()`
 method id used

 Using MRO to determine the class type is wrong, since a model that
 inherits from both an ordinary model and a gis model, in that order, needs
 a !GeoManager (which already subclasses Manager, so we're fine).

 When this is done, there's a "TODO" in the gis tests that can be removed,
 too (in a child model).

 I'll get to this before 1.1, but I had to fix the first parts of this as
 part of some other yak-shaving and don't want to get distracted on this
 yet.

-- 
Ticket URL: <http://code.djangoproject.com/ticket/10506>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to