Полиморфизм в моделях джанго
Запись от netBool размещена 30.03.2018 в 17:46
Показов 3841
Комментарии 0
|
Маленькая запись-напоминалочка, что в джанго можно использовать полиморфизм в том числе и в полях модели. Для этого можно использовать ContentType для реализации абсолютно обобщенных (иногда говорят “полиморфных”) отношений между моделями. Классический джанго-полиморфизм на уровне модели выглядит это примерно так:
В том же переводе сказано, что в 1.9 уберут эту возможность. Но в django 1.11 она по прежнему есть ![]() Итак, после создания связи мы можем использовать API, похожий на тот, что используется в обычном ForeignKey; каждый Note содержит поле ToTarget, которое возвращает связанный с ним объект. Мы можем присвоить этому полю произвольный объект, или указать этот объект при создании Note:
Как многие, наверное, заметили, эта возможность не связана с наследованием, как принято в языках программирования. Но наследование так же есть в джанго. Для этого необходимо объявить абстрактную модель, от которой будем наследоваться, вот так:
Это очень хорошая возможность сократить код. Итак, домашнее задание: можно ли ее использовать так же и для полиморфизма? | |||||||||||||||||||||
Размещено в Django
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии



