Django ImportError用于有效导入

时间:2016-11-05 17:28:46

标签: django django-models

我认为最好用一些代码来解释。请注意,数据之间略微奇怪的关系是一种黑客攻击,可以使用多对多关系进行内联。

应用“数据”具有以下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'

你知道如何解决这个问题吗?据我所知,我不应该得到这个错误...

谢谢。

1 个答案:

答案 0 :(得分:3)

您有循环导入,因为两个模型模块都试图相互导入。您可以通过删除导入并使用外键中的字符串来中断循环导入:

hack = models.ForeignKey('crawler.CrawlJoin', null=True, blank=True, editable=False)