2016-11-05 5 views
0

私はこれがちょっとしたコードで最もよく説明されていると思います。データ間のやや奇妙な関係は、多対多の関係で作業するインラインを取得するためのハックであることに注意してください。有効なインポートのためのDjango ImportError

アプリ「データ」は、以下のmodels.pyがあります

from crawler.models import CrawlJoin 

class Website(models.Model): 
    hack = models.ForeignKey(CrawlJoin, null=True, blank=True, editable=False) 

アプリ「クローラー」は、以下のmodels.pyがあります

from data.models import Website 

class CrawlJoin(models.Model): 
    pass 

class Crawl(models.Model): 
    websites = models.ManyToManyField(CrawlJoin, through='Website') 

私は、クローラまたはいずれかを移行しようとした場合データ、私は次のエラーが表示されます:

ImportError: cannot import name 'CrawlJoin' 

この問題を解決する方法を知っていますか?私が言うことができる限り、私はこのエラーを得るべきではありません...

ありがとう。

答えて

3

両方のモデルモジュールが互いにインポートしようとしているため、循環インポートがあります。インポートを削除し、外部キーの文字列を使用して循環インポートを中断することができます。

hack = models.ForeignKey('crawler.CrawlJoin', null=True, blank=True, editable=False) 
関連する問題