我基本上需要类似 /?status=[active,processed]
的东西或 /?status=active,processed
我当前的设置是:'DEFAULT_FILTER_BACKENDS': ('rest_framework.filters.DjangoFilterBackend',)
并且它只正确过滤了一个值( /?status=active
)
最佳答案
我认为没有内置的功能。但是您可以实现自定义过滤器来做到这一点。您可以在过滤器集中使用此自定义过滤器。
import django_filters as df
class InListFilter(df.Filter):
"""
Expects a comma separated list
filters values in list
"""
def filter(self, qs, value):
if value:
return qs.filter(**{self.name+'__in': value.split(',')})
return qs
class MyFilterSet(df.FilterSet):
status = InListFilter(name='status')
关于django - 使用 IN 运算符过滤 Django REST 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36250810/