Ожидаемое поведение фильтра "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 раз) - тогда как я ожидал бы, что один и тот же объект будет возвращен только один раз. Является ли такое поведение намеренным?

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