- April 28, 2014
- decorator vary_on_cookie
- 0 (after 1 ratings)
@vary_on_user doesn't work properly if your site uses third-party cookies, since the cache key is created from all of the cookies in the request header. This decorator caches pages based on the user ID, so it works reliably.
1 2 3 4 5 6 7 8
def vary_on_user(view): @wraps(view, assigned=available_attrs(view)) def inner_func(request, *args, **kwargs): request.META['HTTP_DJANGO_USERID'] = request.user.id response = view(request, *args, **kwargs) patch_vary_headers(response, ('DJANGO_USERID',)) return response return inner_func