【问题标题】:name 'cache' is not defined django名称“缓存”未定义 django
【发布时间】:2022-01-25 14:52:07
【问题描述】:
class CourseListView(TemplateResponseMixin, View):
    model = Course
    template_name = 'eschool/course/list.html'

    def get(self, request, subject=None):
        subjects = cache.get('all_subjects')
        if not subjects:
            subjects = Subject.objects.annotate(total_courses=Count('courses'))
            cache.set('all_subjects', subjects)
        all_courses = Course.objects.annotate(total_modules=Count('modules'))

        if subject:
            subject = get_object_or_404(Subject, slug=subject)
            key = f'subject_{subject.id}_courses'
            courses = cache.get(key)

            if not courses:
                courses = all_courses.filter(subject=subject)
                cache.set(key, courses)
        else:
            courses = cache.get('all_courses')
            if not courses:
                courses = all_courses
                cache.set('all_courses', courses)
        return self.render_to_response({
            'subjects': subjects,
            'subject': subject,
            'courses': courses
            })

【问题讨论】:

    标签: django django-views


    【解决方案1】:

    你可能忘了添加这个:

    from django.core.cache import cache
    

    【讨论】:

      猜你喜欢
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 2022-10-16
      • 1970-01-01
      • 2018-07-14
      • 2017-12-25
      • 2021-07-17
      相关资源
      最近更新 更多