我的django模型包含2个字段 - c_date 和 c_int 。因为我在创建查询方面非常弱...有没有办法从db中获取那些满足此要求的记录:c_date+timedelta(days=c_int)=date.today
?我想在数据库级别上这样做,因为它比获取所有记录和比较所有记录的日期更快。
答案 0 :(得分:1)
您应该使用QuerySet.extra
来构建复杂的WHERE
子句。特别是对于您的要求,您应该检查所选数据库的DATEADD
函数的可用性。
虽然,根据您的数据集的大小以及您需要运行此查询的频率,另一个选项是进行迁移,并在创建实例时立即计算日期和偏移的总和 - 您可以创建自定义ModelForm
以继续允许用户将c_int
指定为以天为单位的偏移量。