[Product-Developers] Re: @property strips acquisition context

Martin Aspeli optilude+lists at gmail.com
Tue Sep 1 00:54:24 UTC 2009


Hedley Roos wrote:
> Replying to my own post for future reference...
> 
> I was not successful in using @ComputedAttribute, but I could do
> 
> def _foo(self):
>   # Trivial example
>   return self.aq_parent.id
> foo = ComputedAttribute(_foo, 1)
> 
> This looks a lot like the way we used to do decorators before we got
> the @ syntactic sugar. Maybe the correct way to use the decorator is
> @ComputedAttribute(1). I don't know and I do not have enough time to
> investigate.

I think you'd need to make a custom decorator. Something like:

def aq_aware_property(fn):
     return ComputedAttribute(fn, 1)

Then you can do:

@aq_aware_property
def foo(self):
     return self.aq_parent.id

Martin

-- 
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book





More information about the Product-Developers mailing list