Changeset 145 for elixir/trunk/elixir/entity.py
- Timestamp:
- 07/16/07 18:33:36 (6 years ago)
- Files:
-
- 1 modified
-
elixir/trunk/elixir/entity.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
elixir/trunk/elixir/entity.py
r139 r145 40 40 self.module = sys.modules[entity.__module__] 41 41 42 self. primary_keys = list()42 self.has_pk = False 43 43 44 44 self.parent = None … … 75 75 for option_dict in ('mapper_options', 'table_options'): 76 76 setattr(self, option_dict, options_defaults[option_dict].copy()) 77 77 78 78 def setup_options(self): 79 79 ''' … … 169 169 self.delayed_properties.clear() 170 170 171 if 'primary_key' in kwargs: 172 cols = self.entity.table.c 173 kwargs['primary_key'] = [getattr(cols, colname) for 174 colname in kwargs['primary_key']] 175 171 176 assign_mapper(session.context, self.entity, self.entity.table, 172 177 properties=properties, **kwargs) … … 200 205 201 206 self.entity.table = self.parent.table 202 self.primary_keys = self.parent._descriptor.primary_keys203 207 204 208 # re-add the entity fields to the parent entity so that they 205 209 # are added to the parent's table (whether the parent's table 206 # is setup alreadyor not).210 # is already setup or not). 207 211 for field in self.fields.itervalues(): 208 212 self.parent._descriptor.add_field(field) … … 222 226 223 227 if not self.autoload: 224 if not self. primary_keysand self.auto_primarykey:228 if not self.has_pk and self.auto_primarykey: 225 229 self.create_auto_primary_key() 226 230 … … 238 242 *args, **kwargs) 239 243 244 def primary_keys(self): 245 return [col for col in self.entity.table.primary_key.columns] 246 primary_keys = property(primary_keys) 247 240 248 def create_auto_primary_key(self): 241 249 ''' … … 243 251 ''' 244 252 245 assert not self. primary_keysand self.auto_primarykey253 assert not self.has_pk and self.auto_primarykey 246 254 247 255 if isinstance(self.auto_primarykey, basestring): … … 257 265 258 266 if field.primary_key: 259 self. primary_keys.append(field)267 self.has_pk = True 260 268 261 269 table = self.entity.table
