<class>与model <class>有关系,它没有安装或者是抽象的</class> </class>

时间:2012-07-06 10:34:05

标签: django

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.

2 个答案:

答案 0 :(得分:11)

添加:

class Meta:
    app_label="classes"

归类Mini,以便他们可以在同一个应用中找到对方。

答案 1 :(得分:0)

您是否运行python manage.py syncdb来创建必要的数据库表?你还提到Mini类是BaseMaternalVisitModel的子类,你没有在这里导入(虽然如果你得到那个错误,我猜你在这里发布时就忘记了这一行)。

当你对Django模型进行子类化时,你应该意识到“普通”模型和“抽象”模型之间的区别。当模型是“抽象”时,它不是用syncdb创建的 - 只有当你对它进行子类化时,在这种情况下,只在数据库中创建子类模型,包含所有自己的字段和从父节点继承的字段。 class:抽象类。这就是“未安装或抽象”错误的原因:就数据库而言,抽象模型不存在。 Django正在尝试访问数据库中不存在的模型:要么是因为您没有运行syncdb并且已经创建它,要么是因为它是抽象模型而且在数据库中不存在。