【发布时间】:2021-06-27 08:05:16
【问题描述】:
def get_queryset(self):
result = Tenants.objects.all()
filters = self.request.GET.get('filter')
if filters is not None:
filters = filters[1] if filters[1] == ',' else filters
filters_list = filters.split(',')
filter_result = Tenants.objects.none()
for value in filters_list:
filter_result = filter_result | result.filter(Q(business_type__icontains=value)
|Q(category__icontains=value))
return filter_result
return result.all()
这里我希望查询参数是 business_type 和 category 当使用 get 方法并检查数据时,我只能过滤一个字段,business_type 或 category
当使用过滤器两次时 /?page=1&filter=business_type&filter=category 然后我得到我想要的数据
但是当 url 像这样时我需要数据 /?page=1&filter=business_type,category
【问题讨论】:
-
您可以在 URL 上使用正则表达式来获取不同的过滤器,或者使用 "," 作为正则表达式拆分来分隔过滤器参数
-
filters = filters[1] if filters[1] == ',' else filters应该做什么?
标签: python django filter django-rest-framework django-queryset