动态更改 ListView(按天)
Dynamically Changing a ListView (by day)
我有一个 ListView
(通用 CBV)事件。此 ListView
应每天动态更新,以便 "old" 事件(即已经发生的事件)在用户访问该页面时从 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'
为了达到我想要的结果,我最早应该在什么时候修改查询集,以便每次加载页面时它都是 运行?
您应该覆盖 get_queryset()
方法:
class EventDirectoryView(ListView):
...
def get_queryset(self):
return Event.objects.exclude(deadline__lt=(date.today()-timedelta(1)))
我有一个 ListView
(通用 CBV)事件。此 ListView
应每天动态更新,以便 "old" 事件(即已经发生的事件)在用户访问该页面时从 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'
为了达到我想要的结果,我最早应该在什么时候修改查询集,以便每次加载页面时它都是 运行?
您应该覆盖 get_queryset()
方法:
class EventDirectoryView(ListView):
...
def get_queryset(self):
return Event.objects.exclude(deadline__lt=(date.today()-timedelta(1)))