I just created a ticket reporting this issue as a bug:

https://code.djangoproject.com/ticket/18863

Thanks for all the suggestions.

On Tuesday, August 21, 2012 2:27:04 PM UTC-3, Alexis Bellido wrote:
>
> Hello,
>
> I am working on a Django 1.4 project and writing one simple application 
> using per-site cache as described here:
>
> https://docs.djangoproject.com/en/dev/topics/cache/#the-per-site-cache
>
> I have correctly setup a local Memcached server and confirmed the pages 
> are being cached.
>
> Then I set CACHE_MIDDLEWARE_ANONYMOUS_ONLY = True because I don't want to 
> cache pages for authenticated users.
>
> I'm testing with a simple view that returns a template with 
> render_to_response and RequestContext to be able to access user information 
> from the template and the caching works well so far, meaning it caches 
> pages just for anonymous users.
>
> And here's my problem. I created another view using a different template 
> that doesn't access user information and noticed that the page was being 
> cached even if the user was authenticated. After testing many things I 
> found that authenticated users were getting a cached page if the template 
> didn't print something from the user context variable. It's very simple to 
> test: print the user on the template and the page won't be cached for an 
> authenticated user, remove the user on the template, refresh the page while 
> authenticated and check the HTTP headers and you will notice you're getting 
> a cached page. You should clear the cache between changes to see the 
> problem more clearly.
>
> I tested a little more and found that I could get rid of the user in the 
> template and print request.user right on the view (which prints to the 
> development server console) and that also fixed the problem of showing a 
> cached page to an authenticated user but that's an ugly hack.
>
> A similar problem was reported here but never got an answer:
>
> https://groups.google.com/d/topic/django-users/FyWmz9csy5g/discussion
>
> I can probably write a conditional decorator to check if 
> user.is_authenticated() and based on that use @never_cache on my view but 
> it seems like that defeats the purpose of using per-site cache, doesn't it?
>
> Any suggestions will be appreciated.
>
> Thanks!
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-users/-/GCmx3b8WEZoJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to