Ожидаемое поведение фильтра "in" в Django-Filter с Graphene
Предположим, у меня есть модели в Django следующим образом
model Foo:
bar = ManyToMany(Bar)
model Bar:
baz = String
и некоторый объект foo
типа Foo
, например:
foo.bar = [Bar(baz='fizz'), Bar(baz='buzz')]
(то есть, по сути, некоторый объект Foo с более чем 1 отдельным связанным Bar)
и затем, если я создам схему со следующим полем фильтра foo_bar__baz: ['in']
и сделаю запрос с fooBarBazIn: ['fizz', 'buzz']
, один и тот же объект foo
будет возвращен дважды (тогда как если бы я сделал только fooBarBazIn: ['fizz']
, объект foo
был бы возвращен только один раз).
Это поведение распространяется на n связанные поля и m аргументы в фильтре; если объект соответствует k< m этих аргументов, он будет возвращен k раз в результирующем запросе (максимум n раз) - тогда как я ожидал бы, что один и тот же объект будет возвращен только один раз. Является ли такое поведение намеренным?