我想知道您是否有解决方案,可以通过两个或多个不同模型字段以“自由文本”格式给出的一个查询进行过滤
class WitnessFilter(BaseFilterBackend):
def filter_queryset(self, request, queryset, view):
new_queryset = queryset
if view.action == 'list':
serializer = WitnessFilterSerializer(data=request.query_params)
serializer.is_valid(raise_exception=True)
data = serializer.validated_data
language = data.get('language')
city = data.get('city')
free_text = data.get('free_text') # <<<<<<<<<<<<
if free_text:
new_queryset = new_queryset.filter(Q(first_name__icontains=free_text) |
Q(last_name__icontains=free_text))
当某人传递“ somefirstname somelastname”时,将找不到任何东西。它只能按名字或姓氏工作。
谢谢!