Changeset 127

Show
Ignore:
Timestamp:
06/14/07 23:41:11 (8 years ago)
Author:
bbangert
Message:

Adding ability to specify plural name for use in associable classes to the associable (cuts down some syntax in common cases).

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • elixir/trunk/elixir/ext/associable.py

    r123 r127  
    6161        has_field('city', String) 
    6262     
    63     is_addressable = associable(Address) 
     63    is_addressable = associable(Address, 'addresses') 
    6464     
    6565    class Person(Entity): 
    6666        has_field('name', Unicode) 
    6767        has_many('orders', of_kind='Order') 
    68         is_addressable('addresses') 
     68        is_addressable() 
    6969     
    7070    class Order(Entity): 
     
    9797| ``name``      | Specify a custom name for the Entity attribute. This is     | 
    9898|               | used to declare the attribute used to access the associated | 
    99 |               | table values                                                | 
     99|               | table values. Otherwise, the name will use the plural_name  | 
     100|               | provided to the associable call.                            | 
    100101+---------------+-------------------------------------------------------------+ 
    101102| ``uselist``   | Whether or not the associated table should be represented   | 
     
    113114import sqlalchemy as sa 
    114115 
    115 def associable(entity): 
     116def associable(entity, plural_name=None): 
    116117    ''' 
    117118    Generate an associable Elixir Statement 
     
    151152    class Associable(el.relationships.Relationship): 
    152153        """An associable Elixir Statement object""" 
    153         def __init__(self, entity, name, uselist=True, lazy=False): 
     154        def __init__(self, entity, name=None, uselist=True, lazy=False): 
    154155            self.entity = entity 
    155             self.name = name 
    156156            self.lazy = lazy 
    157157            self.uselist = uselist 
     158             
     159            if name is None: 
     160                self.name = plural_name 
     161            else: 
     162                self.name = name 
     163             
    158164            assoc_entity._assoc_relations.append(entity) 
    159165