user9865749
user9865749

Reputation:

Avoid repeating lots of queries every time

I'm done building a website, there's a lots of views that contains many queries My question is How can I avoid repeating some queries from views that will be visited by users many time?.

Here is an example of views.py

@access_to(['is_admin','is_job_seeker'])
def negotiationView(request,slug,id,code):
    obj = get_object_or_404(Group,slug=slug) 
    nego = get_object_or_404(Negotiation,id=id,code=code)

    related_negos = Negotiation.objects.filter(tag=nego.tag)
    # New tag can be created every 2 months or more
    all_jobs = obj.job_offers.filter(published=True) # new job can be added every week

As you can, each time I visit that page, the same query will repeat..

Any hint will be helpful, Thank you in advance!

Upvotes: 1

Views: 164

Answers (1)

Maxim Kukhtenkov
Maxim Kukhtenkov

Reputation: 724

You can add a caching layer to your application. One of the technologies that can be used with Django is Memcached.

Here's info in Django docs about setting up caching with Memcached: https://docs.djangoproject.com/en/2.0/topics/cache/#memcached

Also same page has info about using caching in Django in general, including per-view cache

Upvotes: 1

Related Questions