带有或条件的Django rest框架过滤器 [英] Django rest framework filter with or condition
本文介绍了带有或条件的Django rest框架过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Django Rest Framework Filter来访问我的数据。我需要获取能够回答两个条件之一的数据。示例:
I am using Django Rest Framework Filter to access my data. I need to get data that answers one of two conditions. Example:
Mywebsite/api/animal/?name=lion||name=frog
||
不起作用。有人知道我怎么做这个过滤器吗?
The ||
is not working. Does anyone know how I can do this filter?
推荐答案
我意识到这可能有点老了,但是我这样解决了: / p>
I realize this maybe a little old but i solved it like this:
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))
这篇关于带有或条件的Django rest框架过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文