Аннулирование кэша в Django, который зависит от cookie - PullRequest
0 голосов
/ 13 апреля 2019

Я создаю приложение, в котором мне нужно кэшировать ответ, основанный на файлах cookie.И я также должен признать это недействительным.

Итак, в настоящее время я сделал два представления

  1. Одно для получения кэшированного ответа.

  2. Другое, которое дает некэшированноеответ, а также делает недействительным кеш из вида 1

Так что мои взгляды выглядят так -

from django.utils import timezone

class UserDataCached(APIView):

    permission_classes = (permissions.IsAuthenticated,)

    @method_decorator(cache_page(60, key_prefix="userdata"))
    @method_decorator(vary_on_cookie)
    def get(self, request):
        times = [timezone.now()]
        return Response(times)


class UserDataUncached(APIView):

    permission_classes = (permissions.IsAuthenticated,)

    def get(self, request):
        cache_key = get_cache_key(request, key_prefix="userdata")
        print(cache_key)
        if cache.has_key(cache_key):
            cache.delete(cache_key)
        times = [timezone.now()]
        return Response(times)

Это не работает, я также пытался сохранить набортаких клавиш, как

keys = set()
keys.add(learn_cache_key(request, response)

, а затем удаляю ключи в моем втором виде как

cache.delete_many(keys)

Есть ли способ, которым я могу этого достичь?

...