我希望用Django中的活动项填充页面。
item_active = DateTimeRangeField()
任何比较当前时间的更聪明的方法:;views.py":
def time_now():
return timezone.now()
def index(request):
item_list = item.objects.raw('''SELECT col1, col2 FROM item_table
WHERE upper(item_active) >= %s AND lower(item_active) <= %s''', [time_now])
时间比较的有效实现是有帮助的,但我的直觉告诉我,只包含活动对象的SQL-view每小时更新(使用Django和Celery或postgreSQL每小时更新和on_table_update(是最聪明的。
那么,对于首选的方式,我如何通过Django/Celery或Datebase端实现物化视图呢?(每小时和表更新(
在Django中处理范围字段并没有很好的文档,IMO.
如果你只是在寻找当前时刻(timezone.now(((与item_active字段的范围重叠的项目,这应该可以做到:
def index(request):
item_list = Item.objects.filter(item_active__contains=timezone.now())
编辑:确保您使用标准的Django命名约定,让其他人更容易帮助您。类应该始终是大写的。
https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/