Skip to content

Commit

Permalink
minor additions in base.py
Browse files Browse the repository at this point in the history
  • Loading branch information
bconstantin committed Jan 24, 2011
1 parent 4a4cfd8 commit 3cc7d48
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions polymorphic/base.py
Expand Up @@ -63,7 +63,7 @@ def __new__(self, model_name, bases, attrs):
new_class.add_to_class(mgr_name, new_manager)

# get first user defined manager; if there is one, make it the _default_manager
user_manager = self.get_first_user_defined_manager(attrs)
user_manager = self.get_first_user_defined_manager(model_name, attrs)
if user_manager:
def_mgr = user_manager._copy_to_model(new_class)
#print '## add default manager', type(def_mgr)
Expand Down Expand Up @@ -104,14 +104,16 @@ def get_inherited_managers(self, attrs):
return add_managers

@classmethod
def get_first_user_defined_manager(self, attrs):
def get_first_user_defined_manager(self, model_name, attrs):
mgr_list = []
for key, val in attrs.items():
if not isinstance(val, models.Manager): continue
mgr_list.append((val.creation_counter, val))
mgr_list.append((val.creation_counter, key, val))
# if there are user defined managers, use first one as _default_manager
if mgr_list: #
_, manager = sorted(mgr_list)[0]
_, manager_name, manager = sorted(mgr_list)[0]
#sys.stderr.write( '\n# first user defined manager for model "{model}":\n# "{mgrname}": {mgr}\n# manager model: {mgrmodel}\n\n'
# .format( model=model_name, mgrname=manager_name, mgr=manager, mgrmodel=manager.model ) )
return manager
return None

Expand Down

0 comments on commit 3cc7d48

Please sign in to comment.