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 に答える