1
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.
4

2 回答 2

11

添加 :

class Meta:
    app_label="classes"

给 Mini 上课,这样他们就可以在同一个应用程序中找到彼此。

于 2012-11-27T22:34:51.983 回答
0

你跑来python manage.py syncdb创建必要的数据库表了吗?您还提到Mini该类是 的子类BaseMaternalVisitModel,您尚未在此处导入该类(尽管如果您遇到该错误,我猜您在此处发布时只是忘记了该行)。

当您对 Django 模型进行子类化时,您应该注意“普通”模型和“抽象”模型之间的区别。当一个模型是“抽象的”时,它不会被创建syncdb——只有当你对它进行子类化时,在这种情况下,只有子类化的模型会在数据库中创建,包含它自己的所有字段以及它从父类继承的字段:抽象类. 这就是“未安装或抽象”错误的原因:就数据库而言,抽象模型不存在。Django 试图访问数据库中不存在的模型:要么是因为您还没有运行syncdb并创建它,要么是因为它是一个抽象模型并且在数据库中不存在。

于 2012-07-06T12:52:43.627 回答