Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何禁用django cms AppHooks的缓存?_Python_Django_Django Cms - Fatal编程技术网

Python 如何禁用django cms AppHooks的缓存?

Python 如何禁用django cms AppHooks的缓存?,python,django,django-cms,Python,Django,Django Cms,我在一个页面上工作,我有一个(未来事件)和一个(过去事件,档案) 在这两个页面上,我都使用django cms AppHook,因为我还有详细视图 事件发生后的第二天,事件应隐藏在事件列表中,并在事件回顾页面上可见。但问题是该事件仍在事件列表页面中 models.py # Managers class EventsManager(models.Manager): """EventsManager.""" def get_all(self): return super(E

我在一个页面上工作,我有一个(未来事件)和一个(过去事件,档案)

在这两个页面上,我都使用django cms AppHook,因为我还有详细视图

事件发生后的第二天,事件应隐藏在事件列表中,并在事件回顾页面上可见。但问题是该事件仍在事件列表页面中

models.py

# Managers
class EventsManager(models.Manager):
"""EventsManager."""

    def get_all(self):
        return super(EventsManager, self) \
            .filter(is_visible=True) \
            .order_by('-date')

    def get_all_future(self):
        return super(EventsManager, self) \
            .filter(is_visible=True) \
            .filter(date__gte=datetime.datetime.now()) \
            .order_by('date')

    def get_all_past(self):
        return super(EventsManager, self) \
            .filter(is_visible=True) \
            .filter(date__lt=datetime.datetime.now()) \
            .order_by('-date')
views.py

class EventListView(ListView):
    template_name = 'event_list.html'
    queryset = Events.objects.get_all_future()
    paginate_by = 10

    @never_cache
    def dispatch(self, *args, **kwargs):
        return super(EventListView, self).dispatch(*args, **kwargs)

class EventArchiveView(ListView):
    template_name = 'event_archive.html'
    queryset = Events.objects.get_all_past()
    paginate_by = 20

    @never_cache
    def dispatch(self, *args, **kwargs):
        return super(EventArchiveView, self).dispatch(*args, **kwargs)

    def get_context_data(self, **kwargs):
        context = super(EventArchiveView, self).get_context_data(**kwargs)
        context['is_arcive'] = True
        return context

我尝试使用@never\u缓存,但事件仍在事件列表页面上。我认为这是一个缓存问题,但我不确定从哪里开始搜索。有什么建议吗?

我只是遇到了一个类似的问题,与Django CMS无关。由于某种原因,我只是在生产中遇到了这个问题。解决方案是使用class方法
get_queryset()
而不是使用
queryset
变量定义我的queryset。由于某种原因,在使用UWSGI运行django应用程序时,sql查询被缓存,并且我的日期筛选在第一次查询的日期被卡住

替换:

queryset=Events.objects.get\u all\u pass()

与:

def get_queryset(self):
返回Events.objects.get_all_pass()

我只是遇到了一个类似的问题,它与Django CMS无关。由于某种原因,我只是在生产中遇到了这个问题。解决方案是使用class方法
get_queryset()
而不是使用
queryset
变量定义我的queryset。由于某种原因,在使用UWSGI运行django应用程序时,sql查询被缓存,并且我的日期筛选在第一次查询的日期被卡住

替换:

queryset=Events.objects.get\u all\u pass()

与:

def get_queryset(self):
返回Events.objects.get_all_pass()