我在前端使用Angular,在后端使用django-rest-framework。用户想通过city
和region
使用客户过滤器。一个地区包括几个城市。
class CustomerFilter(filterset.FilterSet):
# a lot of filters (status, name etc.)
...
city = filters.ModelMultipleChoiceFilter(queryset=City.objects.all())
region = filters.ModelMultipleChoiceFilter(method='filter_regions',
queryset=Region.objects.all())
class Meta:
model = Customer
fields = ['city']
def filter_regions(self, queryset, name, value):
if not value:
return queryset
return queryset.filter(city__region__in=value)
因此,我想查看来自指定cities
或reqions
的客户。
/api/customers/?city=32®ion=10
回访居住在城市区域10
和城市32
的交集内的客户,但我需要所有居住在这两个集合之一内的客户。