Ограничение набора запросов фильтра Django по N-му количеству полей

Я думаю, что я не могу хорошо выразить себя словами, поэтому я могу поместить некоторый код, чтобы вы могли понять меня лучше

У меня есть модель

class Obj(models.Model):
  foo = models.IntegerField()

Тогда у меня есть 8 объектов, где

obj1.foo = 1
obj2.foo = 1
obj3.foo = 1
obj4.foo = 2
obj5.foo = 2
obj6.foo = 2
obj7.foo = 3
obj8.foo = 3

С набором запросов

objs = Obj.objects.all()
obj = QuerySet[obj1, obj2, obj3, obj4, obj5, obj6, obj7, obj8]

Тогда запрос, который мне нужен, ограничивает obj по foo

filtered_obj = QuerySet[
 obj1,  # foo=1
 obj2,  # foo=1
 obj4,  # foo=2
 obj5,  # foo=2
 obj7,  # foo=3
 obj8.  # foo=3
]

Я не хочу, чтобы поля повторялись более 2 раз.

Используйте Filter вместо all и передайте foo в качестве параметра

obqs = Obj.objects.filter(foo=1)[:2]
# returns QuerySet[obj1, obj2]
obqs = Obj.objects.filter(foo=3)[:2]
# returns  QuerySet[obj7, obj8]

Ссылка Django Docs

Вернуться на верх