У меня есть таблица SQL (Postgres) с именем «Items» со следующей схемой.
id | parent_id | name
Где столбец parent_id
является ForeignKey для той же таблицы. (Например, у элементов есть родительские элементы, а у этих элементов могут быть родительские элементы)
Это упрощает иерархию ветвления.
В настоящее время я запрашиваю указанную запись c и использую for loop
, чтобы получить каждого из родителей / детей. Это приводит к выполнению многочисленных запросов.
Я хочу сделать запрос к этой таблице, используя идентификатор одного из элементов, и вернуть всех его родителей / детей, используя один запрос.
Я могу сделать это sh, используя .select_related(“parent__parent”)
или .prefetch_related(“item_set”)
для детей, но оба этих подхода потребуют знания глубины иерархии перед этим.
Есть ли способ Django получить все связанные строки в одном запросе? Raw SQL тоже хорошо.