On Sep 11, 2006, at 8:23 AM, dmiller wrote:
>
> On Sep 9, 2006, at 10:11 AM, Aaron Spike wrote:
>> I've got a one-to-one relationship something like this.
>>
>> class Person(object):
>> pass
>> class Photo(object):
>> pass
>>
>> persons_table = Table('persons', metadata,
>> Column('id', Integer, primary_key=True),
>> Column('firstname', String(255),
>> Column('lastname', String(255),
>> ...
>> )
>> photos_table = Table('photos', metadata,
>> Column('person_id', Integer, primary_key=True),
>> Column('photo',),
>> ForeignKeyConstraint(['person_id'],
>> ['persons.id'],'persons_photos_fk')
>> )
>>
>> photomapper = mapper(Photo, photos_table)
>> personmapper = mapper(Person, persons_table,
>> properties={'photo':relation(Photo, uselist=False)})
>>
>> And now to access a person's photo I have to do
>> "person.photo.photo". Is
>> there anyway I can do "person.photo" instead and still have it lazy
>> load
>> the photo? I could make a getPhoto() method on the class but is a
>> property possible?
>
>
> You might consider doing it like this:
>
>
> class Person(object):
> def _get_photo(self):
> if self._photo is None:
> return None
> return self._photo.photo
> def _set_photo(self = photo):
-------------------------^^
Typo... should be:
def _set_photo(self, photo):
> if self._photo is None:
> self._photo = Photo()
> self._photo.photo = photo
> photo = property(_get_photo, _set_photo)
>
> ...
>
> personmapper = mapper(Person, persons_table,
> properties={'_photo':relation(Photo), uselist=False)})
>
>
> That way you can use a normal lazy relationship, and can even access
> the '_photo' attribute directly if you need to.
>
That's obviously untested code. :)
~ Daniel
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users