Создание универсального дизайна наследования таблиц в Django

Прежде всего, некоторые ссылки на страницы, которые я использовал для справки:ТАК вопроси Django документы народовые отношения а такженаследование нескольких таблиц.

До сих пор у меня настроен дизайн наследования нескольких таблиц. Объекты (например, Автомобиль, Собака, Компьютер) могут наследовать класс Item. Мне нужно иметь возможность получать элементы из БД, получать подкласс и делать с ним что-то. Мой дизайн не позволяет извлекать различные типы объектов один за другим, поэтому мне нужно использовать контейнер Item, чтобы объединить их все в один. Когда у меня есть Предмет, документы Django говорят, что я могу получить подкласс, связав атрибут с именем модели (например, myitem.car или myitem.computer).

Я не знаю, на какой объект ссылается мой предмет, так как я могу получить ребенка? Есть ли встроенный способ сделать это? Вот некоторые другие идеи, которые у меня были: (некоторые безумнее, чем другие)

Я думал, что мог бы добавить какой-нибудь GenericForeignKey к Item, который ссылается на дочерний элемент, но я сомневаюсь, что даже родительский класс может связывать через ForeignKey с дочерним классом.Я полагаю, что мог бы иметь ForeignKey (ContentType) в классе Item и найти атрибут Item, чтобы получить дочерний элемент на основе имени ContentType.Наконец, хотя это некрасивый метод, я мог бы вести список типов объектов и пробовать каждый из них в качестве атрибута, пока не будет выдана ошибка DoesNotExist.

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

заранее спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос