【发布时间】:2016-07-15 07:33:03
【问题描述】:
我正在使用多表继承(又名具体继承),其中我有一个名为 Clients 的非抽象模型 + 数据库表,它涉及所有客户端的常见细节。
但客户可以是个人、合作伙伴或公司,我已为其创建了继承模型和表格。个人有名字+姓氏,公司有其他具体细节等。
当我想要所有客户的列表时,我希望能够访问客户的名称(从子表中的列派生)。
经过大量搜索,我发现this tutorial,成功。
基本上,它涉及在 Client 表中插入一列,该列将存储 Child 模型的名称。然后使用该名称,识别适当的子模型并访问适当的子方法。
但在Multi-Table继承中实现多态性似乎是一种略显繁琐的方式。
我想知道自 2012 年以来,Django 是否引入了更好的方法来处理这个问题,还是这仍然是唯一的方法?
如果需要我的代码示例,请告诉我,但提供的链接已经有一个漂亮的示例。
【问题讨论】:
标签: django inheritance django-models multi-table-inheritance