在普通的sql中,要准确选择' n'行,从第'行开始,我们可以执行以下查询:
select * from someTable where target_user_id = user_id limit r,n;
在Django中,我能得到的最接近的是:
someTable.objects.filter(target_user_id=user_id, id__gte=r).values_list('user_id',flat=True)[:n]
但这与我的原始SQL查询不同。 任何人都可以解释一下等效的django查询是什么吗?
答案 0 :(得分:1)
试试这个:
someTable.objects.all()[r:r+n]
这就像普通列表一样:
In [10]: t = range(1,10)
In [11]: r = 2
In [12]: n = 3
In [13]: t[r:r+n]
Out[13]: [3, 4, 5]
Django会将其转换为带有限制的SQL查询。