这是我正在尝试做的一个简明示例:
class Entity(models.Model):
name = models.CharField(max_length=70)
class Individual(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
class BookingAgent(Entity)
staff = models.ManyToManyField(Individual, through='Role', related_name="employee")
class Role(models.Model):
person = models.ForeignKey(Individual)
company = models.ForeignKey(Entity)
position = models.CharField(max_length=70)
基本上,我有一个名为的父类Entity
,它存储公司的所有基本信息,即地址等。然后我有一个BookingAgent
是Entity
. 当我尝试在BookingAgent
模型上创建直通关系时,它不起作用。我得到错误:
'staff' 是通过模型 Role 手动定义的 m2m 关系,没有 Individual 和 BookingAgent 的外键
但是当在 Entity` 模型中定义直通关系时,它会起作用。
我的目标是让每个实体都有一份员工或成员个人名单。我想我明白为什么它不起作用,但我想不出一个优雅的解决方案。
谢谢!
更新:澄清一下,实体不是抽象基类,因为会有一些实体不是 BookingAgents、ManagementCompanies 等