Выбор правильного типа подкласса в многостоловой схеме наследования в Django

Я пытаюсь реализовать иерархию классов наследования нескольких таблиц в Django (1.7).

Мои модели могут быть упрощены до следующих:

PARTY_TYPES = ((1, "Person"), (2, "Organization"))
ORGANIZATION_TYPES = ((1, "Private"), (2, "Governmental"))

class Party(models.model):
    party_type = models.PositiveSmallIntegerField(choices = PARTY_TYPES)
    party_name = models.CharField(max_length = 250)
class Person(Party):
    sex = models.CharField(max_length = 1)
class Organization(Party):
    organization_type = models.PositiveSmallIntegerField(choices = ORGANIZATION_TYPES)
    full_name = models.CharField(max_length = 250)
class PrivateOrganization(Organization):
    some_field = ...
class GovernmentalOrganization(Organization):
    some_field = ...

Как вы можете видеть, существует иерархия наследования с двумя уровнями глубины. Когда участник импортируется как внешний ключ в какую-либо другую модель, пользователь должен иметь возможность добавить его, нажав кнопку добавления рядом с полем. Вот где начинается моя проблема. Мне нужно попросить пользователя добавить правителя партии, затем, возможно, тип организации, а затем представить правильную форму. Я провел несколько часов с хорошими сообщениями, подобными этому или этому, и имел частичный успех, но я не мог найти правильное решение. В моем проекте есть другие многоуровневые случаи глубокого наследования, поэтому решение этой проблемы действительно важно для меня. Я был бы признателен за любой совет "передовой практики".

0 ответов

Другие вопросы по тегам