Если я правильно понимаю, каждый Concept
может иметь другую Concept
как родитель, и это устанавливается в category
поле.
Другими словами, Concept
с хотя бы одним ребенком будет ссылаться хотя бы один раз в поле category
.
Вообще говоря, это не так-то просто, чтобы попасть в Django; Однако, если вы не слишком много категорий, вы можете думать, для запроса т.п. SELECT * FROM CONCEPTS WHERE CONCEPTS.ID IN (SELECT CATEGORY FROM CONCEPTS);
- и это то, что вы можете легко сопоставить с Django:
Concept.objects.filter(pk__in=Concept.objects.all().values('category'))
Обратите внимание, что, как указано на Django documentation, этот запрос могут иметь проблемы с производительностью в определенных базах данных; поэтому вместо него вы должны поместить его в список:
Concept.objects.filter(id__in=list(Concept.objects.all().values('category')))
Но следует помнить, что это может ударить некоторые ограничения базы данных - например, Oracle позволяет до 1000 элементов в таких списках.
Благодарим вас за глубокое объяснение! – dragoon