测试失败,因为无法导入模型

时间:2016-09-08 13:46:47

标签: django python-3.x

我正在开发的应用程序是专有的,因此我将尝试提供尽可能多的信息。

运行运行所有测试的python manage.py test时,只有一个应用程序在许多其他应用程序中失败。已经烧了太多小时了。

输出结果为:

  

ImportError:无法导入测试模块:app.aom.apps.forum.tests

在此之后,列出了跟踪,然后是一行,表示将模型导入tests.py文件时出现问题,即:

from .models import ForumSectionGroup, ForumSection, ForumThread, ForumPost

,输出的最后一行是:

  

RuntimeError:模型类app.aom.apps.forum.models.ForumSectionGroup不声明显式的app_label,也不在INSTALLED_APPS的应用程序中。

我已经Google搜索并研究了可能导致此问题的原因以及结论:要么在加载应用程序之前导入模块,要么我没有INSTALLED_APPS中列出的应用程序。但这些似乎都不是问题所在。也许测试机制以某种方式跳过几步并在导入模型之前将其卸载。

在模型中明确地将app_label作为class Meta的一部分进行分配会导致冲突,因为当我强制它时,模型最终会注册两次。通过查看第111行https://github.com/django/django/blob/master/django/db/models/base.py

的代码,我得出了这个结论

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。对我来说,修正它的原因是什么 from .models import Model1, Model2

from app.models import Model1, Model2

from .model import语法在view.py等中运行正常,但在测试中它无效。只有在使用上述评论中指出的非标准结构时才会出现这种情况。

在我的具体案例中,我使用的是Django 1.11。