我正在编写一个 Django 应用程序,我想在其中获取所有项目,但最后来自查询。我的查询是这样的:
objects = Model.objects.filter(name='alpha').order_by('rank')[:-1]
但它抛出错误:
任何建议将不胜感激。
最佳答案
您可以使用 QuerySet.last() 获取最后一个并使用其 id 将其从结果中排除。
objects = Model.objects.filter(name='alpha').order_by('rank')
last = objects.last()
objects = objects.exclude(pk=last.pk)
从结果中排除所有在 DB 中找到的最小值排列的对象的查询:
objects = Model.objects.annotate(
mini_rank=Min('rank'), # Annotate each object with the minimum known rank
).exclude(
mini_rank=F('rank') # Exclude all objects ranked with the minimum value found
)
关于python - 如何获得相当于python [ :-1] in django ORM?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54393691/