Мне нужна моя конечная точка для приема запросов в формате:
groupId=11111&groupId=22222
и разрешения запроса: groupId=1111 OR groupId=2222
Я не смог найти ничего в документации о том, каксделать это, и сделал следующую реализацию (в настоящее время WIP, не написал много тестов):
2 from django_filters import rest_framework as filters
32 class CustomFilter(filters.UUIDFilter):
33 def filter(self, qs, value):
33 attr_name = next(k for k, v in self.parent.get_filters().items() if v.field_name == self.field_name)
34 if attr_name not in self.parent.data:
35 return super().filter(qs, value)
36
37 q = Q()
38 for val in self.parent.data.getlist(attr_name ):
39 q |= Q(**{f"{self.field_name}__{self.lookup_expr}": val})
40 return self.get_method(qs)(q)
Используется как:
45 groupId = CustomFilter(field_name="group_id", help_text="Jobs associated with group")
Есть ли способ реализоватьэто с помощью того, что уже в рамках?