vvpoloskin
@vvpoloskin
Инженер связи

Как в джанго обстоит с множественным наследованием моделей?

А как в джанго обстоит с миксинами к моделям (читай множественному наследованию). Допустим я делаю инет-магазин, у меня есть модель Item (товар). Тут я выясняю, что для одного типа товаров есть характеристики (например, длина и цвет). А для другого типа есть другие характеристики (материал) и нет первых. Добавлять к общей Item смысла все свойства нет.

Так вот можно ли создать миксин типа CustomItem1, создать модель NewItem (Item, CustomItem) и пользоваться плюшками дополнительных полей? Аналогично сделать NewItem2. Как это будет выглядеть в штатной админке?

Можете дать пример рабочего кода?
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ответы на вопрос 2
У django есть абстрактные модели, в которых вы можете определить нужные поля и применить это к основной модели.

Динамически создавать такие модели не получится. При каждом добавлении новой модели или полей к существующей модели нужно делать миграцию
Ответ написан
Комментировать
@deliro
Разделять модель на кучу подмоделей только из-за того, что у кого-то есть одно свойство, а у другого нет — вот где смысла нет.

Есть как минимум пара рабочих схем для этого:
1) JSON
2) EAV

Первый вариант предпочтителен для postgresql. Можно достаточно гибко создавать индексы для конкретных полей внутри json'а. О производительности json vs eav легко можно найти в интернете.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы