Hello Plone Developers,

i need some help with a plone.memoize caching.

I try to cache a method on a browser view only if
the result of the methods aktive == '1'.

This is my implementation:

def _render_details_cachekey(method, self):
    keys = self.veryExpensiveOftenCalledMethod()
    if keys.get('aktiv') == '1':
        return (keys.get('user',), keys.get('aktiv'))
    else:
        DontCache

class DisplayViewView(BrowserView):
    """
    DisplayView browser view
    """
    implements(IDisplayViewView)

    def getMemberId(self):
        pm = getToolByName(self, 'portal_membership')
        user = pm.getAuthenticatedMember()
        return user.getId()

    def veryExpensiveOftenCalledMethod(self):
        return {'user': self.getMemberId(), 'aktiv':'1'}

    @ram.cache(_render_details_cachekey)
    def test(self):
        print "CALL TEST"
        return self.veryExpensiveOftenCalledMethod()


Does this work?
Do you see any problems with it?

Thanks for your help.

Christian


_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers

Reply via email to