from django.db import models
from audit_trail.audit import AuditTrail
from my_base_model.classes import BaseUuidModel
from my_class_base import BaseClass
class Mini(BaseMaternalVisitModel):
my_class_base = models.ForeignKey(BaseClass)
class MiniHu(BaseUuidModel):
myclass = models.ForeignKey(Mini)
class Meta:
app_label="classes"
当我运行python manage.py validate
时,我收到此错误
<MiniHu> has a relation with model <Mini>, which has either not been installed or is abstract.
答案 0 :(得分:11)
添加:
class Meta:
app_label="classes"
归类Mini,以便他们可以在同一个应用中找到对方。
答案 1 :(得分:0)
您是否运行python manage.py syncdb
来创建必要的数据库表?你还提到Mini
类是BaseMaternalVisitModel
的子类,你没有在这里导入(虽然如果你得到那个错误,我猜你在这里发布时就忘记了这一行)。
当你对Django模型进行子类化时,你应该意识到“普通”模型和“抽象”模型之间的区别。当模型是“抽象”时,它不是用syncdb
创建的 - 只有当你对它进行子类化时,在这种情况下,只在数据库中创建子类模型,包含所有自己的字段和从父节点继承的字段。 class:抽象类。这就是“未安装或抽象”错误的原因:就数据库而言,抽象模型不存在。 Django正在尝试访问数据库中不存在的模型:要么是因为您没有运行syncdb
并且已经创建它,要么是因为它是抽象模型而且在数据库中不存在。