我希望用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视图(使用Django和Celery或postgreSQL每小时更新的on_table_update)是最聪明的。
那么,对于首选的方式,我如何通过Django/Celery或DateBase端实现物化视图?(每小时和on_table_update)
发布于 2020-10-29 10:12:49
在Django中使用range字段并没有很好的文档记录,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/
https://stackoverflow.com/questions/64425914
复制相似问题