django drf 多条件查询
时间: 2023-10-09 13:09:53 浏览: 248
在Django REST Framework(简称DRF)中,可以使用多个条件进行查询。以下是一种常见的方法来实现多条件查询:
1. 使用`query_params`获取查询参数:
```python
from rest_framework import viewsets
class YourViewSet(viewsets.ModelViewSet):
def get_queryset(self):
queryset = YourModel.objects.all()
# 获取查询参数
param1 = self.request.query_params.get('param1', None)
param2 = self.request.query_params.get('param2', None)
# 根据参数进行过滤
if param1 is not None:
queryset = queryset.filter(field1=param1)
if param2 is not None:
queryset = queryset.filter(field2=param2)
return queryset
```
2. 使用`Q`对象进行复杂查询:
```python
from django.db.models import Q
def your_view(request):
param1 = request.GET.get('param1', None)
param2 = request.GET.get('param2', None)
queryset = YourModel.objects.all()
if param1 or param2:
query = Q()
if param1:
query &= Q(field1=param1)
if param2:
query &= Q(field2=param2)
queryset = queryset.filter(query)
# 其他操作...
return queryset
```
这些是实现多条件查询的两种常见方法,你可以根据具体需求选择适合你的方式。
阅读全文