【发布时间】:2018-07-11 23:15:57
【问题描述】:
我在一个 django 项目中创建了一个列表视图。 但是当一天过去时,过滤器停留在起始数据(网络服务器的启动或刷新)上。为什么不是每天更新?
这是我的代码:(餐厅订桌)
models.py:
class Table_book(models.Model):
name = models.CharField(max_length=50)
date = models.DateField()
time = models.CharField(max_length=50, choices=TIMES)
people = models.PositiveIntegerField(choices=TABLES)
telephone = models.CharField(max_length=50)
views.py
class List_book(ListView):
model = Table_book
template_name = 'list_today.html'
queryset = Table_book.objects.all().filter(date=timezone.now()).order_by('date', 'time')
urls.py
url(r'^$', login_required(List_book.as_view(), login_url='/login/'), name='home'),
在 template.html 中,列表对象填充一个表格。
【问题讨论】:
-
查询是在模块加载时构建的,因为类定义是模块级代码。然后评估
timezone.now()。每次调用视图时都会评估查询集,但查询只构建一次。 -
我可以解决在主类中创建函数(请求)吗?
-
没必要。 Django 的默认视图提供了必要的运行时钩子。我添加了一个答案。
标签: python django datetime filter