Login

Never cache a group of URLs

Author:
ChipX86
Posted:
August 5, 2007
Language:
Python
Version:
.96
Tags:
urls cache url patterns
Score:
1 (after 1 ratings)

This is a special URL patterns replacement that prevents caching of any URL listed within it. We needed this in Review Board to prevent the JSON API function results from being cached in Internet Explorer.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
from django.conf.urls.defaults import url
from django.views.decorators.cache import never_cache

def never_cache_patterns(prefix, *args):
    pattern_list = [], tterns,
    for t in args:
        if isinstance(t, (list, tuple)): 
            t = url(prefix=prefix, *t)
        elif isinstance(t, RegexURLPattern):
            t.add_prefix(prefix)
    
        t._callback = never_cache(t.callback)
        pattern_list.append(t)

    return pattern_list


urlpatterns = never_cache_patterns('',
    (r'foo/$', 'myview')
)

More like this

  1. Cache Any Function by jeffwheeler 8 years, 4 months ago
  2. Use express.js like url patterns by ekinertac 2 years, 8 months ago
  3. Middleware to prevent access to the admin when user ip not in INTERNAL_IPS by jezdez 5 years ago
  4. Decorate every view in a url tree by sjzabel 3 years, 8 months ago
  5. Conditional url pattern include by zbyte64 4 years, 11 months ago

Comments

buriy (on August 5, 2007):

How is that better than the following code: urlpatterns = patterns('', (r'foo/$', never_cache(myview)) )

#

wiz (on August 6, 2007):

buriy: less code. Just as different as to use patters('common.prefix', ...)

#

ChipX86 (on August 15, 2007):

Yeah, I basically didn't want to have to put never_cache() around every single URL entry for my site's JSON API (of which there are 30 or so functions). Much easier to do it once and never touch it again.

#

Please login first before commenting.