Найти - Пользователи
Полная версия: Наследование моделей. Как получить от родителя предков?
Начало » Django » Наследование моделей. Как получить от родителя предков?
1
VadimHacker
Здравствуйте!
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.
regall
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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB