Skip to main content
 首页 » 编程设计

python之django 同一个查询的 id 和 date 不一致,为什么

2025年05月04日19youxin

我有下一个模型:

class People(models.Model): 
    name = models.CharField(max_length=100) 
    date = models.DateTimeField() 

我的数据是这样的:

id    name    date 
120   john    9-11-2011 19:00:25 
121   john    9-11-2011 19:05:55 
.... 
180   steven  10-11-2011 00:00:45 
... 
468    cleve  10-11-2011 23:55:35 

在 views.py 中

-当我尝试这个时:

dates=[] 
ids=[] 
for i in People.objects.filter(date__range=["2011-11-10", "2011-11-11"]): 
    ids.append(i.id) 
    dates.append(i.date) 
return HttpResponse("ids=%s  dates=%s"% (ids,dates)) 

因此,我有一个非常基本的 orm 查询来过滤一天的数据。代码有一个奇怪的问题,因为 ids 应该是 ids=[180...468], 但它返回

ids=[120...408] 
dates=[datetime.datetime(2011, 11, 10, 0, 0, 45), ....datetime.datetime(2011, 11, 10, 23, 55, 35) 

问题是代码返回的日期是正确的,但是 ID 不正确。这怎么可能,为什么我在同一查询中得到不一致的 ID 和日期?

请您参考如下方法:

您可以尝试使用大于/小于过滤器:

for i in People.objects.filter(date__lte='2011-11-10').filter(date__gte='2011-11-11'): 
    ...