Thread: [SQLObject] Setters calling setters.
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: John R. <joh...@gm...> - 2005-07-05 22:45:06
|
Howdy. I have two columns, one of which is computed from the other.=20 So my plan was to write a setter for one that set the other. This seems to work fine, except in the constructor. class X(SQLObject): name=3D StringCol(length=3D255, default=3DNone, unique=3DTrue) fullName=3D StringCol(length=3D255, default=3DNone) def _set_fullName(self, fullName): = =20 if fullName is not None: self.name=3D magicallyUniqueThingDerivedFrom(fullName) self._SO_set_fullName(fullName) This works: X().fullName=3D 'whatever' -- the name attribute gets updated appropriately. But this doesn't: X(fullName=3D 'whatever') -- the name attribute is still None. Is there a way to make both work? |
From: Oleg B. <ph...@ma...> - 2005-07-05 23:30:04
|
On Tue, Jul 05, 2005 at 03:44:57PM -0700, John Reese wrote: > Howdy. I have two columns, one of which is computed from the other. > So my plan was to write a setter for one that set the other. This > seems to work fine, except in the constructor. I suspect this is another variant of known problem with setters in a constructor. Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Ksenia M. <kse...@gm...> - 2005-07-07 07:50:48
|
> This works: >=20 > X().fullName=3D 'whatever' > -- the name attribute gets updated appropriately. >=20 > But this doesn't: >=20 > X(fullName=3D 'whatever') > -- the name attribute is still None. >=20 > Is there a way to make both work? I use _create for this: def _create(self, id, **kw): kw['name'] =3D magicallyUniqueThingDerivedFrom(kw['fullName']) SQLObject._create(self, id, **kw) --=20 Ksenia |