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

时间:2017-05-22 19:02:26

标签: python django django-cms

我正在一个页面上工作,我有event-list page(未来事件)和event-review page(过去的事件,存档)。

在这两个页面上我使用django-cms AppHook,因为我也有详细的视图。

活动结束后的第二天,活动应隐藏在活动列表中,并在活动评论页面上显示。但问题是该事件仍然在事件列表页面中。

models.py

public class Uppgift4_6a {
    public static void main(String[] args) {
        int [] intArray= new int [] {2, 4};
        int l= intArray[0];
        int r= intArray[1];
        System.out.println("right order:" + l + " " + r);
        exchange(intArray, intArray[0], intArray[1]);
        System.out.println("right order:" + l + " " + r);
    }

    public static void exchange (int[] intArray, int l, int r){
        l = intArray[0]; 
        r = intArray[1];
        intArray[1] = l;
        intArray[0] = r;
        return;
    }
}

views.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')

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

1 个答案:

答案 0 :(得分:0)

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

<强>替换

queryset = Events.objects.get_all_past()

<强>与

def get_queryset(self): return Events.objects.get_all_past()