Size: a a a

Django [ru] #STAY HOME

2020 August 09

NC

Nikolay Cherniy in Django [ru] #STAY HOME
💪😕
Есть вот такое безобразие, можно обернуть в одну строку это? По сути надо отфильтровать объект и перезаписать его.
for o in parent.objects:
   o.attribute_values.core_filters['product']._prefetched_objects_cache['attribute_values'] = o.attribute_values.core_filters['product']._prefetched_objects_cache['attribute_values'].filter(attribute__code__in=kwargs['filter_attrs'])
что это вообще такое??? 0_о запрос в орм?
источник

💪

💪😕 in Django [ru] #STAY HOME
Фильтр QS, метод как дописать не знаю,.
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
просто все что там между переменной и фильтром вызывает вопросы как это работает, но вообще циклы в запросах - идея не очень
источник

💪

💪😕 in Django [ru] #STAY HOME
Там выборка из 50 объектов, у них есть свойства, которые вот так я фильтрую. Это graphene
источник

💪

💪😕 in Django [ru] #STAY HOME
Я не могу их раньше отфильтровать на стадии родительского запроса, либо не догоняю как, поэтому мучаю уже ответ
источник

AK

ARTUR KNYAZEV in Django [ru] #STAY HOME
Nikolay Cherniy
вокруг дива который нужно вывести напиши
{% if user.employee %} ... {% endif %}
но это не точно)
все сработало
источник

💪

💪😕 in Django [ru] #STAY HOME
💪😕
Я не могу их раньше отфильтровать на стадии родительского запроса, либо не догоняю как, поэтому мучаю уже ответ
А не могу, потому что там django-oscar и сложно и не нужно мне там свои методы писать, мне кажется
источник

AK

ARTUR KNYAZEV in Django [ru] #STAY HOME
всего две строчки
источник

AD

Alex Dem in Django [ru] #STAY HOME
💪😕
Есть вот такое безобразие, можно обернуть в одну строку это? По сути надо отфильтровать объект и перезаписать его.
for o in parent.objects:
   o.attribute_values.core_filters['product']._prefetched_objects_cache['attribute_values'] = o.attribute_values.core_filters['product']._prefetched_objects_cache['attribute_values'].filter(attribute__code__in=kwargs['filter_attrs'])
это пздц
используйте Prefetch() объекты для таких задач
источник

AD

Alex Dem in Django [ru] #STAY HOME
💪😕
Есть вот такое безобразие, можно обернуть в одну строку это? По сути надо отфильтровать объект и перезаписать его.
for o in parent.objects:
   o.attribute_values.core_filters['product']._prefetched_objects_cache['attribute_values'] = o.attribute_values.core_filters['product']._prefetched_objects_cache['attribute_values'].filter(attribute__code__in=kwargs['filter_attrs'])
источник

AD

Alex Dem in Django [ru] #STAY HOME
💪😕
Есть вот такое безобразие, можно обернуть в одну строку это? По сути надо отфильтровать объект и перезаписать его.
for o in parent.objects:
   o.attribute_values.core_filters['product']._prefetched_objects_cache['attribute_values'] = o.attribute_values.core_filters['product']._prefetched_objects_cache['attribute_values'].filter(attribute__code__in=kwargs['filter_attrs'])
источник

💪

💪😕 in Django [ru] #STAY HOME
Оке, спасибо. Но почему то теперь ошибка:
Cannot filter a query once a slice has been taken.

parent.objects.prefetch_related(Prefetch('attribute_values')).filter(attribute__code__in=kwargs['filter_attrs'])
источник

AD

Alex Dem in Django [ru] #STAY HOME
💪😕
Оке, спасибо. Но почему то теперь ошибка:
Cannot filter a query once a slice has been taken.

parent.objects.prefetch_related(Prefetch('attribute_values')).filter(attribute__code__in=kwargs['filter_attrs'])
Потому, что где-то взят слайс?
источник

AD

Alex Dem in Django [ru] #STAY HOME
💪😕
Оке, спасибо. Но почему то теперь ошибка:
Cannot filter a query once a slice has been taken.

parent.objects.prefetch_related(Prefetch('attribute_values')).filter(attribute__code__in=kwargs['filter_attrs'])
явно не здесь
источник

💪

💪😕 in Django [ru] #STAY HOME
А про слайс, есть ссылка?)
источник

AD

Alex Dem in Django [ru] #STAY HOME
💪😕
А про слайс, есть ссылка?)
где-то сделана конcтрукция вида

queryset[:10]
источник

💪

💪😕 in Django [ru] #STAY HOME
Alex Dem
где-то сделана конcтрукция вида

queryset[:10]
Да, это пагинатор уже
источник

💪

💪😕 in Django [ru] #STAY HOME
То есть, мне в это в цикл и запихать и фильтр к каждому применить?
источник

AD

Alex Dem in Django [ru] #STAY HOME
как же бесит порой телега, когда возвращает стертый текст
или стирает написанное
источник

AD

Alex Dem in Django [ru] #STAY HOME
💪😕
То есть, мне в это в цикл и запихать и фильтр к каждому применить?
Надо в изначальном запросе сделать все префетчи
источник