On Mon, Jul 7, 2008 at 10:24 PM, Michael Bayer <[EMAIL PROTECTED]> wrote:
>
>
> On Jul 7, 2008, at 3:29 PM, Eric Lemoine wrote:
>
>>
>> Hello
>>
>> To override attribute behavior the 0.5 doc gives this example:
>>
>> class MyAddress(object):
>> def _set_email(self, email):
>> self._email = email
>> def _get_email(self):
>> return self._email
>> email = property(_get_email, _set_email)
>>
>> mapper(MyAddress, addresses_table, properties = {
>> 'email':synonym('_email', map_column=True)
>> })
>>
>> What won't work if I just set the python property and don't use the
>> synonym func:
>>
>> mapper(MyAddress, addresses_table)
>>
>> What difference does it make? I couldn't find an explanation in the
>> doc.
>>
>> Sorry if that's a dumb question!
>
>
> without synonym(), just add "_email:addresses_table.c.email" to your
> mapper properties dict so that the "email" name is made available.
In that case, on DB read, SA will set _email directly and won't go
through _set_email(). Is that correct?
And with "email:synonym('_email', map_column=True)", will SA set
_email directly or will it go through _set_email()? My feeling is that
it will set it directly, so it is exactly the same as doing
"_email:addresses_table.c.email".
And if one uses neither "email:synonym('_email', map_column=True)" nor
"_email:addresses_table.c.email" then SA will go through _set_email().
Is my understanding correct?
--
Eric
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---