Как получить набор запросов с первым дочерним продуктом родительского продукта? - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть эта таблица AbstractProduct с данными, (https://prnt.sc/s1ssxx), где я хочу получить все продукты со структурой автономно и только первый вариант (дочерний) родителя товар. то есть (исключая все продукты со структурой «родитель», и просто сохраняя первый дочерний продукт из всех родительских продуктов).

from django.db.models import Count, F, Value
parent_ids = Product.objects.filter(user_id=user_id,structure=Product.PARENT).values_list('id', flat=True)  
qs = Product.objects.filter(user_id=user_id).exclude(structure=Product.PARENT).annotate(p=F('parent_id')).distinct('parent_id')

Я пробовал этот запрос, но я использую MySQL в качестве базы данных, поэтому он жалуется на ошибку:

"Поля DISTINCT ON не поддерживаются этой базой данных backend "

, таким образом он может использоваться только другими бэкэндами базы данных, такими как Postgres

, поэтому я не могу использовать различные с любым именем поля. Как я могу запросить, чтобы получить эти записи оптимизированным способом с минимальными попаданиями в БД?

...