0

В чем обоснование решения не поддерживать единую таблицу наследования в Django?Почему Django не поддерживает одноуровневое наследование?

Является ли STI плохим дизайном? Это приводит к низкой производительности? Будет ли это противоречить с ORM Django, как есть?

Просто интересно, потому что это была отсутствующая функция как десять лет назад, и поэтому должно быть сознательное решение, которое никогда не будет поддерживаться.

+0

Не совсем дубликат (он требует обоснования) http://stackoverflow.com/questions/241250/single-table-inheritance-in-django –

ответ

0

Возможно, одна из причин того, что Django не имеет возможности изменять таблицы базы данных после создания.

Вы можете «отчасти» выполнять STI с использованием прокси-моделей. Это не позволит вам иметь разные поля на разных моделях, но это позволит вам приложить различные действия (через методы модели) к различным подклассам.

Однако, если вы решили создать подкласс с дополнительными полями, Django не сможет обновить базу данных, чтобы отразить это.