我正在编写一个 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/

10-13 06:43