【发布时间】:2016-05-07 08:55:05
【问题描述】:
我正在使用 django 模型继承来创建一个实体模型,这样我就可以在对话模型中引用两个外键,因为 entity_1 和 entity_2 可以是个人或企业。但是我不断收到以下错误消息:
api.Conversation.entity_1: (fields.E300) Field defines a relation with model 'Entity', which is either not installed, or is abstract.
api.Conversation.entity_2: (fields.E300) Field defines a relation with model 'Entity', which is either not installed, or is abstract.
这是我目前的代码:
class Entity(models.Model):
id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
class Meta:
abstract = True
class Person(Entity):
"""
Person model
"""
avatar = models.ImageField(upload_to=get_upload_avatar_path, blank=True, null=True, default=None, max_length=255)
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
class Business(Entity):
"""
Business model
` """
name = models.CharField(max_length=255, null=True, default=None)
class Conversation(models.Model):
id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
entity_1 = models.ForeignKey(Entity)
entity_2 = models.ForeignKey(Entity)
【问题讨论】:
-
你不能引用抽象类。它不会创建数据库表。
-
@trantu 那我该怎么办?我想 entity_1 和 entity_2 都引用 Person 和 Business,所以我可以从对话模型中访问每个
标签: python django entity-framework