taxicab33
@taxicab33
Python разработчик | Django

Не сбрасывается кэш DRF GeneriAPIView, при срабатывании post_save сигнала, что делать?

Не очищается кэш вьюхи, хотя вызов метода cache.delete_pattern по паттерну, при срабатывания сигнала, возвращает кол-во удалённых ключей
# settings.py
CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': REDIS_URL,
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
        }
    }
}

# urls.py
path(
     'trajectories',
     cache_page(20, key_prefix=TRAJECTORIES_LIST_CACHE_KEY)
     (TrajectoriesListCreateAPIView.as_view()),
     name=LIST_CREATE_TRAJECTORY_URL
    )

# views.py
class TrajectoriesListCreateAPIView(generics.ListCreateAPIView,
                                    SystemObjectViewMixin):
    """
    POST: Создание профиля(траектории)
    GET: Список профилей(траекторий) системы с метриками
    """
    serializer_class = TrajectoryModelSerializer
    queryset = Trajectory.objects.with_metrics()

# handlers.py
@receiver(post_save, sender=Trajectory)
def clear_view_cache_on_trajectory_save(sender, **kwargs):
    deleted_keys = cache.delete_pattern(f'*{LIST_CREATE_TRAJECTORY_URL}*')
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы