Changeset 3266
- Timestamp:
- 07/03/06 15:56:24 (2 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/multiple-db-support/django/db/models/manager.py
r3228 r3266 21 21 pass 22 22 cls.add_to_class('objects', Manager()) 23 23 elif cls._default_manager.model != cls: 24 # cls is an inherited model; don't want the parent manager 25 cls.add_to_class('objects', Manager()) 24 26 dispatcher.connect(ensure_default_manager, signal=signals.class_prepared) 25 27 … … 39 41 self.model = model 40 42 setattr(model, name, ManagerDescriptor(self)) 41 if not hasattr(model, '_default_manager') or self.creation_counter < model._default_manager.creation_counter: 43 if not hasattr(model, '_default_manager') \ 44 or self.creation_counter < model._default_manager.creation_counter \ 45 or model._default_manager.model != model: 42 46 model._default_manager = self 43 47 … … 103 107 return self.get_query_set().values(*args, **kwargs) 104 108 109 ####################### 110 # SCHEMA MANIPULATION # 111 ####################### 112 113 def install(self, initial_data=False): 114 """Install my model's table, indexes and (if requested) initial data. 115 116 Returns a 2-tuple of the lists of statements executed and 117 statements pending. Pending statements are those that could 118 not yet be executed, such as foreign key constraints for 119 tables that don't exist at install time. 120 """ 121 creator = self.model._meta.connection_info.get_creation_module() 122 run, pending = creator.builder.get_create_table(self.model) 123 run += creator.builder.get_create_indexes(self.model) 124 pending += creator.builder.get_create_many_to_many(self.model) 125 if initial_data: 126 run += creator.builder.get_initialdata(self.model) 127 128 for statement in run: 129 statement.execute() 130 return pending 131 132 def load_initial_data(self): 133 """Load initial data for my model into the database.""" 134 pass # FIXME 135 136 def drop(self): 137 """Drop my model's table.""" 138 pass # FIXME 139 140 105 141 class ManagerDescriptor(object): 106 142 # This class ensures managers aren't accessible via model instances.
