pr = Product.objects.filter(Product_description__qty__lte = 0)
Или, если вы действительно должны использовать exclude:
pr = Product.objects.exclude(Product_description__qty__gt = 0)
all()
не обязательно в любом случае;В итоге вы просто создаете неуправляемый прокси, который впоследствии создает фильтр / исключает набор запросов.Это тратит впустую память и процессор, но иначе ничего не делает.Только для оператора .delete()
требуется рабочий набор запросов all()
, но это особый случай, разработанный специально для предотвращения случайного уничтожения наборов данных.
Документация Django Queryset API очень удобочитаема.
Соглашение Django - называть ваш класс ProductDescription
.
Это похоже на обратную иерархию.Почему в магазинах есть «описания продуктов»?Разве это не метаданные о самом продукте, и что вас волнует, так это то, что в магазинах есть определенное количество продукта?Или это варианты товара, то есть вы хотите найти все товары, для которых в магазинах есть хотя бы один зеленый, синий или оранжевый?Что-то подсказывает мне, что ваш проект нуждается в тщательном переосмыслении.