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

Добрый день, есть модель https://pastebin.com/UeQCjNEQ , она связана с моделью

продукта. К товару можно задать несколько значений фильтра. Несколько значений образуют варианты для определенного фильтра (например цвет: белый, зеленный и тд) С клиентской части приходят идентификаторы значений фильтров, разбитые по группам [[1, 2, 3], [5, 6, 7]] где 1, 2, 3 отвечают за цвет, а 5, 6, 7 - к примеру, за размер. Задача состоит в фильтрации товаров для которых определен идентификатор значение фильтра одного из значений из первой группы и из второй (например цвет коричневый, размер 50 см). На данный момент решаю проблему так filter_ids_list = filter_dict.pop('filter')
q_objects = (Q(filters__value__id__in=ids) for ids in filter_ids_list)
filter_query = reduce(operator.and_, q_objects)
qs = Product.objects.active().filter(**filter_dict).filter(filter_query).distinct() но товары не фильтруются верно, может что-то я упустил ?

1 ответов

12 просмотров

в чистом SQL решается относительно просто, в джангковском орме, только через OR, которые планировщики запросов обычно ой как не любят

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

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

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
5
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Как структуру (из MSVC) в которой описаны битовые поля описать для fasm? Вот например это (fBinary...fDummy2 - это физически 1 DWORD): typedef struct _DCB { DWORD DCBlength;...
Евгений
3
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
9
Всем привет, препод задал вопрос, подскажите пожалуйста, какой адрес инкапсулирует указатель?
Свинка Пеппа
9
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Карта сайта