我有ListView
(通用CBV)事件。此ListView
应每天动态更新,以便在用户访问网页时从context
排除“旧”事件(即已发生的事件)。
我刚注意到此页面实际上并未按预期运行(需要重新启动服务器才能使ListView
更新)。我怀疑这是因为我正在使用queryset
方法,而且我应该更早地进行处理:
class EventDirectoryView(ListView):
model = Event
# Exclude objects that are expired
queryset = Event.objects.exclude(deadline__lt=(date.today()-timedelta(1)))
template_name = 'event-directory.html'
为了达到我想要的结果,我应该最早修改查询集,以便每次加载页面时都运行它?
答案 0 :(得分:1)
您应该覆盖get_queryset()
方法:
class EventDirectoryView(ListView):
...
def get_queryset(self):
return Event.objects.exclude(deadline__lt=(date.today()-timedelta(1)))