我正在使用Django Rest Framework Filter来访问我的数据。我需要获得满足两个条件之一的数据。例如:
Mywebsite/api/animal/?name=lion||name=frog
||
无效。有谁知道我怎么做这个过滤器?
答案 0 :(得分:1)
我意识到这可能有点旧,但我解决了这个问题:
from django.db.models import Q
class FooViewSet(viewsets.ModelViewSet):
queryset = Foo.objects.all()
status = self.request.query_params.get('status', None)
def get_queryset(self):
if status is not None:
status = status.split('|')
query = Q()
for x in status:
q = Q(status=x)
query |= q
queryset = queryset.filter(query)
return queryset
我的网址看起来像这样:
example.com/api/foo/?status=test1|test2|test3
和像这样的过滤器
Foo.objects.filter(Q(status=test1)|Q(status=test2)|Q(status=test3))