Ros
Ros

Reputation: 481

How to disable cache on Django?

I have a problem with my first django app and I can not find the solution. I send this to my controller:

http://localhost:8000/fun1_get_data/?param1_qty=10

The controller:

@never_cache
def func1_get_data(request):
  result = request.GET['param1_qty']
    return HttpResponse(json.dumps(result), content_type = "application/json")

Only return the same parameter...very easy...but doesn't work.Only works the first time after restart de server or 'save changes' on archive .py.

The first time OK:

http://localhost:8000/fun1_get_data/?param1_qty=10
10

And then....

http://localhost:8000/fun1_get_data/?param1_qty=999
10

panic!!


Extra: the template:

url(r'^func1_get_data/', controlador.func1_get_data)

Upvotes: 1

Views: 2573

Answers (2)

Muhammad Ziauldin
Muhammad Ziauldin

Reputation: 11

Go to your Django project and open the urls.py file - Import the cache decorator

from django.views.decorators.cache import never_cache

Use it as function wrapper instead of view decorator

path('', include('home.urls')),
path('', include('blog.urls','blog')),
path('ajax/next-page/', never_cache(views.load_more.as_view()), name='next-page'),

It works for me hope so it also for you.

Upvotes: 1

Usman Maqbool
Usman Maqbool

Reputation: 3371

Use it like this:

@cache_control(max_age=0, no_cache=True, no_store=True, must_revalidate=True)
def view(request):
    ...

Upvotes: 3

Related Questions