From e7927e3e281eaed573a2a152d95fc8fc3affccd6 Mon Sep 17 00:00:00 2001 From: Lymar Volodymyr Date: Mon, 3 Jun 2024 11:58:39 +0200 Subject: [PATCH] added cache for goods list --- goods/views.py | 10 ++++++++++ melnichanka/settings.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/goods/views.py b/goods/views.py index 09087cd..9e55029 100644 --- a/goods/views.py +++ b/goods/views.py @@ -1,3 +1,4 @@ +from django.core.cache import cache from rest_framework import viewsets from rest_framework.permissions import IsAuthenticated @@ -9,3 +10,12 @@ class GoodsViewSet(viewsets.ModelViewSet[Product]): queryset = Product.objects.all() serializer_class = GoodsSerializer permission_classes = (IsAuthenticated,) + + def get_queryset(self): + cached_goods = cache.get("goods_list") + if cached_goods: + return cached_goods + else: + goods = super().get_queryset() + cache.set("goods_list", goods, 60 * 15) + return goods diff --git a/melnichanka/settings.py b/melnichanka/settings.py index ca78bd4..10db991 100644 --- a/melnichanka/settings.py +++ b/melnichanka/settings.py @@ -128,7 +128,7 @@ "LOCATION": f"redis://{REDIS_HOST}:{REDIS_PORT}/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", - } + }, } }