Построение моделей вложенности Django

Допустим, есть таблица авто

ИД Наименование
1  Мазда MX-5
2  ЛАДА Гранта
3  Киа спектра
4  Нива Шевроле 4х4

Ну и примерно такая таблица каталога

ИД Название                  Уровень_вложенности Родитель_ИД
1  Отечественные автомобили  1                   null
2  Иномарки                  1                   null
3  Мазда                     2                   2
4  ЛАДА                      2                   1
5  Киа                       2                   2
6  Нива                      2                   1
7  Передний привод           3                   3
8  Передний привод           3                   4
9  Передний привод           3                   5    
10 Задний привод             3                   3
11 Задний привод             3                   4
12 Задний привод             3                   5    
13 Полный привод             3                   3
14 Полный привод             3                   5
15 Полный привод             3                   6

Нужно получать: 
Иномарки > = Мазда MX-5, Киа спектра
Иномарки > Мазда > Задний привод  = Мазда MX-5
Отечественные автомобили > Нива > Полный привод  = Нива Шевроле 4х4
и тд.

Каким образом моделями джанго можно эффективно организовать хранение многоуровневых зависимостей? Создать ещё одну таблицу где будет примерно такое?

(допустим для мазды)
ИД_авто ИД_каталог_итем
1       2
1       3
1       10

Ответы (1 шт):

Автор решения: Inventor

Не совсем понимаю смысл второй таблицы и зачем так усложнять? Делается 1 общая таблица со всеми автомобилями и их характеристиками. Если нужно получить какой-то определённый автомобиль из БД по определённым характеристикам, то у моделей Django есть метод filter. Если нужно получить какие-то уникальные значения (например марки авто), то есть метод distinct

→ Ссылка