擅长:python、mysql、java
<p>可以对查询集使用切片运算符:</p>
<pre><code>def get_rows_satisfying_visit_count(visits=100, rows=100):
return MyModel.objects.filter(num_visits=number)[:rows]
</code></pre>
<p>编辑:
更新后的问题,来自Django>;=2.0,您可以使用<code>Window</code>和<code>Sum</code>执行此操作:</p>
<pre><code>MyModel.objects.annotate(
cumulative_sum=Window(
Sum('num_visits'),
order_by=F('id').asc()
)
).filter(cumulative_sum__lte=100)
</code></pre>
<p>这将获得累积和小于或等于100的前几行</p>