@ksenod

Почему объединение двух Queryset.values в set дает в результате множество объектов(со всеми их полями)?

Код которым получил результат
a = Product.objects.order_by('-date_updated').values('id')[:3]
b = Product.objects.filter(new_product__in=NewArrival.objects.all()).values('id')
c = set(a|b)

В a и b лежит [{'id':1},{'id':4}, ...
а в с уже попадают объекты product. Как это работает?
аналогично, если сделать просто a|b получу кверисет продуктов а не id
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Everything_is_bad
Потому что ты творишь какую-то дичь, вместо использования методов QuerySet, выбирай нужный: union, intersection, difference
Ответ написан
@deliro
Видимо баг, сделай

set((Product.objects.order_by('-date_updated')[:3] | Product.objects.filter(new_product__in=NewArrival.objects.all())).values_list("id", flat=True))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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