我通过以下两种方式对模型使用过滤器:
Model.objects.filter(created_date__gte = datetime(2018,1,11,00,00,00),created_date__lte = datetime(2018,11,11,23,59,59),user_id = 135)
还有
Model.objects.filter(user_id = 135,created_date__range = [“ 2018-11-1 00:00:00”,“ 2018-11-11 23:59:59”])
当我检查两个过滤器的计数时,计数有很大的不同。
主要问题是过滤器的range和gte / lte有什么区别?
使用postgres SQL原始查询
选择,count()OVER()AS full_count FROM table_name WHERE user_id = 135 AND DATEDATE('2018-11-01 00:00:00')AND DATE('2018-11-12 23:59:59')之间的ORDER BY BY created_date;
django ORM的计数也不同