У меня есть следующее расположение столов:Как реализовать этот тип модели наследования и как связать таблицу с любой другой таблицей в Джанго
Как это работает на данный момент:
Событие может быть создано и может быть расширено, на основе связанного с ним типа EventType.
Если EventType имеет дополнительные поля (если has_additional_fields is true), то событие будет расширен таблицей «EventType_TheNameOfTheEventType», однако, если в EventType нет дополнительных полей, тогда событие не будет распространено другим Таблица.
Если событие расширено, будут доступны дополнительные поля ввода.
Таблица строк, в которой поле «type_data» события ссылается, будет известно из-за того, как будут называться эти таблицы.
Пример:
Событие типа (название EventType) «Проект» может иметь дополнительное поле, таких как «Группа» и будет отличаться от события типа «собрания», который может иметь дополнительное таких как «Тема».
Событие типа «Обычный» не будет иметь дополнительных полей.
Вопрос:
Это лучший способ реализации такого рода наследования?
Я хотел бы получить представление о том, как создать модели для этого в Django.
Я чем-то смущен. Поле content_type в классе EventType ссылается на тип содержимого одного из типов событий? Например, ссылается ли он на тип контента ProjectEvent, если имя EventType является «проектом»? –
Да, вы поняли это правильно. Поле 'content_type' указывает на' Event' или один из потомков 'Event' (' ProjectEvent', 'MeetingEvent' и т. д.), – catavaran
Хорошо, да, это логично. Но когда я создаю EventType, как мне связать его с типом контента? –