【发布时间】:2016-12-06 18:43:09
【问题描述】:
我想根据模型的两个字段进行查询,一个日期,一个整数偏移量,用作时间增量
model.objects.filter(last_date__gte=datetime.now()-timedelta(days=F('interval')))
不可行,因为 F() 表达式不能传递到 timedelta 中
稍微挖掘一下,我发现了DateModifierNode - 虽然它似乎在这个提交中被删除了:https://github.com/django/django/commit/cbb5cdd155668ba771cad6b975676d3b20fed37b(来自这个现在已经过时的SO问题Django: Using F arguments in datetime.timedelta inside a query)
提交提到:
.dates() 查询是通过使用自定义 Query、QuerySet、 和编译器类。而是通过使用表达式和 数据库转换器 API。
这听起来很明智,而且应该仍然有一个快速简单的方法 - 但我一直在寻找如何做到这一点太久了 - 有人知道答案吗?
【问题讨论】:
-
您不必更改模型结构并手动添加。参考this。
标签: python django django-models orm django-orm