Антон: я тоже в них не очень. Но я почти уверен, что у самолетов есть марка (как, например, Хонда) и модель (аккорд, напр.). Возможно,в Ту-154, Ту и есть марка.
Кстати, касательно самолетов, у них еще есть тех обслуживание. Это еще таблица)
Раздувая тему:
Модель самолёта заменить на:
* Марка самолёта (название)
* Модель самолёта (марка (fk), название)
* Самолёт (модель самолёта (fk), артикул (или как это там называют)) - сама сущность физического самолёта
Добавить таблицу должностей, заменить поле "должность" у сотрудника на FK.
Animkim: очевидно, потому что нужно category объявить. Например:
category = Category.objects.filter(name='Выучи наконец питон и прочитай PEP8')
А уж потом искать его потомков.
iegor:
1) Потомки - это потомки. Если у тебя родится дочь а у неё сын, этот сын не будет твоим потомком. Все потомки для категории с ID=1 - это все категории с parent_id=1, но никак не поддерево с корнем в вершине id=1
2) Если нужно именно поддерево получить, нужно задуматься о способе хранения таких деревьев в БД, т.к. тут уже для эффективных обходов обычной ссылки на родителя будет мало. Хороший пример - MPTT.
3) Чистый SQL настолько же "плохой путь", как и "куча отдельных запросов".