Rajesh,
Thanks a lot for taking the time to explain, it helps a lot.
/Håkan
On Mar 9, 7:02 pm, Rajesh D wrote:
> On Mar 9, 9:11 am, Håkan W wrote:
>
> > Hi all,
>
> > I'm a bit confused about the caching. I've started using per-view
> > caching with the @cache_page decorator.
>
> > Now, if I add this to pages that return private content to logged-in
> > users, will it do the right thing and not show information for one
> > logged-in user to another? And it must not show logged-in content to
> > non-logged in users of course.
>
> First, add this to your settings:
>
> CACHE_MIDDLEWARE_ANONYMOUS_ONLY = True
>
> Even though this setting is for the cache middleware, the @cache_page
> decorator internally uses the same middleware code so the above
> setting will be honored by it.
>
>
>
> > Example:
>
> > @cache_page(3 * 60)
> > @login_required
> > def view(request):
> > if request.user.is_authenticated():
> > # show something that is "private" to this user...
> > else:
> > # show general stuff, for all non-logged in users
>
> With CACHE_MIDDLEWARE_ANONYMOUS_ONLY set to True, the @cache_page
> decorator will cache the anonymous part of your above view i.e. the
> "general stuff" but will not cache the "private" part of the view.
> BUT, since your view requires login, @cache_page will cache nothing in
> this case or more accurately, the "general stuff" is never going to be
> executed because anonymous users will be redirected to the login page
> by your @login_required decorator.
>
> You can always use the low-level caching API if you want finder
> control over what gets logged in.
>
> > Also, does anyone know of a simple way to tell when stuff is served
> > from cache and not, when you're testing on your production server?
>
> U... don't test on your production server :)
>
> If you use memcached, you can run it in verbose non-daemon mode with "-
> vv" (leave out the -d setting so it runs in your terminal in the
> foreground). That will show you cache hits when you browse to a
> cachable view.
>
> Don't forget to set memcached back to daemon/background mode with the
> verbosity turned off after you're done.
>
> -RD
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
"Django users" group.
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
-~--~~~~--~~--~--~---