django Dynami c фильтрация набора запросов с использованием строки из URL - PullRequest
0 голосов
/ 29 мая 2020

есть ли способ динамически фильтровать набор запросов, т.е. у нас есть значение из двух строк из URL-адреса и поиск модели, где первая строка является атрибутом модели , и получить все объекты, содержащие вторую строку в этом конкретном атрибуте

1 Ответ

0 голосов
/ 29 мая 2020

Привет, вам просто нужно следовать этому решению и адаптировать его к вашему случаю

Model.objects.values('attribute', 'id') # using '.values'
[{'attribute': 'some attribute', 'id': 1 }, {'attribute': 'some 3', 'id': 2}, {'attribute': 'something', 'id': 3}, {'attribute': 'some some', 'id': 4}] # returns list of dictionaries

Отфильтруйте или выполните поиск в списке словарей с вашей «второй строкой» и выполните новый запрос с идентификаторами. Вы можете адаптировать это одно

Model.objects.filter(id__in=object_ids)

или использовать это решение

filterExpresion = attribute+'__contains'
dynamicFilter = {filterExpresion: secondString} 
Model.objects.filter(**dynamicFilter)
...