在Django中的多表继承方案中选择正确类型的子类

时间:2014-09-28 14:19:48

标签: django inheritance subclass class-hierarchy multi-table

我正在尝试在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 = ...

正如您所看到的,存在一个2级深度的继承层次结构。当派对作为外键导入到其他模型时,用户需要能够通过单击该字段旁边的添加按钮来添加它。这就是我的问题开始的地方。我需要让用户加入方王,然后可能要添加的组织类型,然后呈现正确的表格。我花了几个小时发布了thisthis这样的好帖子并且取得了部分成功,但我无法实施正确的解决方案。我的项目中还有其他多级深度继承案例,因此解决这个问题对我来说非常重要。我很欣赏任何“最佳实践”建议。

0 个答案:

没有答案