Допустит, у меня есть этот класс (упрощенный):комплексы Джанго фильтр вопроса
class Tag (...):
children = models.ManyToManyField(null=True, symmetrical=False)
Теперь я уже реализовал функцию get_parents, get_all_ancestors. Есть ли хороший питонический способ только для тегов верхнего уровня? Если бы я разработал свои теги по-разному (вместо этого указывая на родителей), я бы просто сделал get_all_parents().filter(children=None)
.
Моя первая мысль - создать новую функцию, которая будет рекурсивно проходить через всех родителей и сохранить тех, у кого их нет.
Но есть ли возможность с фильтрами или объектами Query делать то же самое (с меньшим количеством строк кода)?
Благодарим за помощь.
[править]
Когда она будет закончена, она должна быть иерархическая система мечения. У каждого тега могут быть дети, родители, но только дети сохраняются. Я хочу получить все теги верхнего уровня, которые указывают на многих дочерних/детских детей на мой тег.
Можете ли вы проиллюстрировать пример того, как должен выглядеть ваш вывод данных? – viksit
Мой вывод данных должен состоять из списка тегов или даже лучшего запроса. Их легко конвертировать, поэтому оба варианта подходят для моего случая. –