Django获取模型数据:某个值大于另一个值
在Django中,我有这样一个模型:
class downloads(models.Model):
date = models.CharField(max_length=50)
ip = models.ForeignKey(IPaddress)
partnum = models.ForeignKey(partnum)
user = models.ForeignKey(userinfo)
filename = models.CharField(max_length=128)
issueId = models.ForeignKey(issueInfo)
我需要做的是从这个表中获取数据,条件是日期要大于日期1并且小于日期2。
我知道如果我使用PHP,我可以查询数据库,做类似于 select * from downloads where date > date1 and date < date2
的操作,这样就能得到一个可以遍历的数据集。那么在Django中我该怎么做呢?
我想大胆猜测一下,可能是这样的:
d = downloads.objects.get('Where date > date1 and date < date2')
或者
d = downloads.objects.get(date=>date1,date<=date2)
我对Python和Django非常陌生(上周才开始学习……),任何帮助都非常感谢。
谢谢
编辑:感谢大家的快速回复 - 我已经找到了我新问题的答案。
4 个回答
1
看看这个链接:
https://docs.djangoproject.com/en/dev/topics/db/queries/#field-lookups
d = Downloads.objects.filter(date__gt= dateParam1, date__lt= dateParam2 )
2
如果你在使用Django的ORM(对象关系映射),那么可以这样做:
downloads = Downloads.objects.filter(date__range=(dat1, date2))
或者
downloads = Downloads.objects.filter(date__gt=date1, date__lt=date2)
这样可以根据条件筛选你的对象。__gt
的意思是“大于”,而__lt
的意思是“小于”。
想要更详细的解释,可以查看文档: https://docs.djangoproject.com/en/dev/ref/models/querysets/#filter
https://docs.djangoproject.com/en/dev/ref/models/querysets/#gt