我正在开发一个使用Django的Web应用程序。在其他表中,我有一个名为GeneralContract的表,它具有issueDate和Expiration Date作为日期字段。Django过滤器使用两个条件
我想知道保险代理人的利润在我的情况下会从一段时间内从这些合同中获得。例如,如果日期范围是2015年1月15日 - 2015年2月25日我想过滤在此期间之间每年发行的所有GeneralContract对象。 (即issueDate__month = Date1.month AND IssueDate.day_gte= Date1.day) AND (IssueDate__month = Date2.month AND IssueDate.day_lte = Date2.day)
??
我尝试以下,但它不给我我想要的结果,我不知道如果我在正确的语法写这个,或者如果我的逻辑是错误的。
criterion1 = Q(issuedate__month=date1.month)
criterion2 = Q(issuedate__day__gte=date1.day)
criterion3 = Q(issuedate__month=date2.month)
criterion4 = Q(issuedate__day__lte=date2.day)
criterionA = criterion1 & criterion2
criterionB = criterion3 & criterion4
criterionC = criterionA & criterionB
currentGenProfits = GeneralContract.objects.filter(criterionC, cancelled=False)
这是做这个过滤逻辑的正确方法吗?
检查由django orm生成的查询。你可以得到一些提示。 'print(currentGenProfits.query)' – alfredo138923
谢谢我会检查出来。你认为这是正确的方式来查询任何年份的日期范围内的条目吗? –
这个时期之间的任何一年的含义是什么,目前尚不清楚。你能不能把相关的数据例子放进去。还要注意这个书面代码没什么意义:)。 – iklinac