我有一个简单的Python/Django的类:充分利用数据库的某些元素在Django
class myModel(models.Model):
date = models.DateTimeField()
value = models.IntegerField()
,我想从我的数据库中的两个元素。首先是最新的元素,第二个是最新的积极因素。因此,我可以做到这一点是这样的:
myModel.objects.all().order_by('-date')[:1][0]
myModel.objects.filter(value__gte = 0).order_by('-date')[:1][0]
注意那些[:1][0]
末 - 这是因为我希望得到最大限度的利用数据库的SQL引擎。事情是,我仍然需要两个查询,我想将它组合成一个单一的(如最后[:2]
这将产生我想要的结果)。我知道Django的Q,但不知道如何在这种情况下使用它。也许一些原始的SQL?我在等待想法。 :)
我不明白你为什么使用'[:1] [0]'而不是'[0]',有什么我失踪? – juliomalegria
我知道'[:1]'在MySQL中被翻译成(例如)'limit 0,1'。但我认为'[0]'只能将查询转换为列表并取第0个元素。我想我错了。 – freakish