Фильтр набора запросов от начала до определенного объекта
Я знаю, что можно добавить [:n]
в конец набора запросов, чтобы отфильтровать этот набор запросов от начала до n-го объекта. Например,
qs = Item.objects.all()
range = qs[:5] # Returns first five objects
Можно ли отфильтровать набор запросов, чтобы он был от начала до определенного объекта? Например,
qs = Item.objects.all()
obj = Item.objects.get(pk="123")
# How to return the qs from the beginning to obj?
Редактировать:
Я нашел следующие два решения... Я полагаю, что y
является наиболее эффективным? Есть ли лучший способ сделать это?
x = (*qs,).index(obj)
return qs[:x]
y = list(qs.values_list("id", flat=True)).index(obj.id)
return qs[:y]