170 похожих чатов

Доброе утро. Как можно сделать фильтрацию через django filters фильтруя

по двум полям в модели? Условно чтобы был один query param, но фильтрация работала бы по двум полям как в поисковике, возвращая все возможные варианты

10 ответов

15 просмотров

если я правильно понял то Model.objects.filter(Q(field1=param) | Q(field2=param)) https://docs.djangoproject.com/en/3.1/topics/db/queries/#complex-lookups-with-q-objects

вообще вот про поиск можешь почитать https://docs.djangoproject.com/en/3.1/topics/db/search/

Rifat- Автор вопроса

А в FilterSet как то можно это интегрировать?

не знаю что за фильтрСет

*.objects.filter().filter() Так вроде можно делать

СТОП! вы про какую филтрацию ? в джанго есть отдельные фильтры

то что вы писали это при взаимодействии с БД а ему нужно чтоб в урле были фильтрации после /?key=value и таким образом фильтруем их

.filter().filter() - выполнит AND запрос топик стартеру нужен OR

да думаю он должен реализовать фильтерсет класс и добавить в неё имя таблицы и поля котрые он хочет взять

Rifat- Автор вопроса

в итоге это помогло, но я переписал метод filter_queryset у FilterSet. В самом методе идет перебор по имени и значению query params, я всего лишь добавил проверку на мой query param for name, value in self.form.cleaned_data.items(): if name == ‘query_param’: queryset = queryset.filter( models.Q(fieldname1__icontains=value) | models.Q(fieldname2__icontains=value) ) else: queryset = self.filters[name].filter(queryset, value)

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта