我正在使用django-filter + django rest框架。我想搜索一个带有OR子句的术语。我有一个过滤器:
class ItemFilter(filters.FilterSet):
name = filters.CharFilter(field_name="name")
barcode = filters.CharFilter(field_name="barcode")
class Meta:
model = Item
fields = ['name', 'barcode']当我发送类似于https://url?barcode=q&name=q django-filter搜索的查询参数时:
SELECT * FROM item where name = 'q' AND barcode = 'q'如何配置为搜索?:
SELECT * FROM item where name = 'q' OR barcode = 'q'发布于 2022-08-27 07:07:04
其中一个选项是在视图中使用SearchFilter对多个字段进行筛选:
from rest_framework import filters
class YourView(generics.ListAPIView):
queryset = Item.objects.all()
serializer_class = ...
filter_backends = [filters.SearchFilter]
search_fields = ['name', 'barcode']然后在url查询参数中使用search关键字:https://url?search=q
https://stackoverflow.com/questions/73508705
复制相似问题