You're a fountain of ideas!  I missed that one in the book.

I wonder if this would work.  Off to go try it...

def lazy_cache_action(self, time_expire=DEFAULT_TIME_EXPIRE, 
cache_model=None,
           prefix=None, session=False, vars=True, lang=True,
           user_agent=False, public=True, valid_statuses=None,
           quick=None):
    def decorator(f, time_expire, cache_model, prefix, session, vars, lang,
               user_agent, public, valid_statuses, quick):
        def g(*c, **d):
            from gluon import current
            return current.cache(f, time_expire, cache_model, prefix, 
session, vars,
                lang, user_agent, public, valid_statuses, quick)(f)(*c, **d)
        g.__name__ = f.__name__
        return g
    return decorator



On Tuesday, July 31, 2018 at 11:25:10 AM UTC-7, Anthony wrote:
>
> On Tuesday, July 31, 2018 at 1:57:46 AM UTC-4, Joe Barnhart wrote:
>>
>> I was wondering about this.  I tried to search the group but didn't find 
>> anything relevant.  Took a look at the source code and it seemed like I 
>> could use in a module which is called to produce a string of Javascript on 
>> demand of an Ajax routine.
>>
>> Beforehand, I save the global "cache" var in my "current" object.  Then I 
>> rename my method "content" to "__content__", and last I do this:
>>
>>     def content(self):
>>         c = current.cache
>>         return c.action(cache_model=c.disk, 
>> quick="VP")(self.__content__)()
>>
>> Seems to work.  Am I asking for trouble?  Is there anything I should 
>> watch for?
>>
>
> Seems reasonable. You could also create a custom decorator, similar to 
> lazy_cache 
> <https://github.com/web2py/web2py/blob/master/gluon/cache.py#L728-L746> 
> (see the end of this section: 
> http://web2py.com/books/default/chapter/29/04/the-core#Warning--Do-not-use-the-current-object-in-global-scope-in-a-module
> ).
>
> Anthony
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to