[Django]比较同一个model中的两个字段,进行条件过滤

时间:2021-06-10 14:55:55

django orm中怎么样比较同一个模型中的两个字段来过滤记录呢?


例如一个合同字段,结束日期和终止日期的比较我们用sql很容易实现。

select *from contracts where 
contract_stop_time<end_time

这里要是用db模块中的F 库才行   F object

from django.db.models import F
from contracts.models import Contracts
contracts = Contracts.objects.filter(contract_stop_time__lt=F('end_time'))

如果直接写成

Contracts.objects.filter(contract_stop_time__lt=end_time)

或者

Contracts.objects.filter("contract_stop_time"<"end_time")

都是不行的。