Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Наследование моделей. Как получить от родителя предков? [RSS Feed]

#1 Дек. 13, 2009 17:59:30

VadimHacker
От:
Зарегистрирован: 2009-02-08
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Наследование моделей. Как получить от родителя предков?

Здравствуйте!

class Cell(models.Model):
key = ...

class CellA(Cell):
valueA = ...

class CellB(Cell):
valueB = ...
Допустим я нахожу QuerySet с отобранными по ключу key модели Cell. Мне нужно получить из этого набора отдельно списки с CellA и CellB.
Т.е. я НЕ хочу делать так и не знаю заранее какие потомку у меня вообще есть:
A = CellA.objects.filter(key = 123)
B = CellB.objects.filter(key = 123)
а получить как-то из Cell.objects.filter(key = 123) A и B.



Офлайн

#2 Дек. 13, 2009 18:27:17

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Наследование моделей. Как получить от родителя предков?

VadimHacker
Cell.objects.filter(key = 123)
Ну, собственно, так и будет работать.
Когда вы наследуюетесь, то (в вашем случае) создадутся 3 таблицы. таблицы с объектами CellA, и CellB будут связаны через соотношение один к одному с таблицей Cell , только если в подклассе модели Cell - Meta не указано поле abstract = True.

В данном случае получить CellA можно:
Cell.objects.get(pk__exact = 123).cella    # Если это CellA
Cell.objects.get(pk__exact = 123).cellb # Если это CellB



Отредактировано (Дек. 13, 2009 18:27:31)

Офлайн

  • Начало
  • » Django
  • » Наследование моделей. Как получить от родителя предков?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version