Ограничение набора запросов фильтра 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