Кэширование частей шаблона django

У меня есть страница, я хочу кэшировать только часть шаблона, потому что если я кэширую всю страницу, у меня кэшируется и заголовок сайта, а мне это не нужно. Я попытался использовать тег - cache в шаблоне, но, к сожалению, запросы все равно продолжают обращаться к базе данных. Тем не менее, доступ к кэшу осуществляется. В чем может быть проблема?

lesson.html

views.py

class LessonDetailView(DetailView):
     model = Lesson
     template_name = 'courses/lesson.html'
     context_object_name = 'lesson'
     slug_url_kwarg = 'lesson_slug'

     def get_queryset(self):
        queryset = Lesson.objects.filter(slug=self.kwargs['lesson_slug']).prefetch_related('materials', 'questions')

        return queryset

     def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['title'] = self.object.name
        context['selected_course'] = Course.objects.prefetch_related('themes__lessons').get(slug=self.kwargs['course_slug'])

        return context

Используйте тег шаблона - cache.

Вам необходимо убедиться, что вы правильно обернули определенные секции вашего шаблона тегом {% cache %}.

И нужно проверить:

Тег {% cache %} требует уникального ключа кэширования для раздела. В приведенном выше примере я использовал selected_course_themes selected_course.id в качестве уникального ключа для кэширования тем для конкретного курса. Вы можете настроить ключ в зависимости от того, какие данные отображаются и когда они меняются.

и Число 500 в теге {% cache 500 %} - это продолжительность кэширования в секундах (корректируйте по мере необходимости).

Вернуться на верх