Si je comprends bien, chaque Concept
peut avoir une autre Concept
en tant que parent, et ce paramètre est réglé dans le champ category
.
En d'autres termes, un Concept
avec au moins un enfant sera référencé au moins une fois dans le champ category
.
D'une manière générale, ce n'est pas vraiment facile à obtenir dans Django; si vous n'avez pas trop de catégories, vous pouvez penser à une requête de l'analogue de SELECT * FROM CONCEPTS WHERE CONCEPTS.ID IN (SELECT CATEGORY FROM CONCEPTS);
- et c'est quelque chose que vous pouvez mapper facilement avec Django:
Concept.objects.filter(pk__in=Concept.objects.all().values('category'))
Notez que, comme indiqué sur Django documentation, cette requête peut avoir des problèmes de performance sur certaines bases de données; Par conséquent, vous devriez plutôt mettre comme une liste:
Concept.objects.filter(id__in=list(Concept.objects.all().values('category')))
Mais s'il vous plaît soyez conscient que cela pourrait frapper une certaine limitation de la base de données - par exemple, Oracle permet jusqu'à 1000 éléments dans ces listes.
Merci pour une explication approfondie! – dragoon