我正在开发的应用程序是专有的,因此我将尝试提供尽可能多的信息。
运行运行所有测试的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
答案 0 :(得分:0)
我遇到了同样的问题。对我来说,修正它的原因是什么
from .models import Model1, Model2
到
from app.models import Model1, Model2
from .model import
语法在view.py等中运行正常,但在测试中它无效。只有在使用上述评论中指出的非标准结构时才会出现这种情况。
在我的具体案例中,我使用的是Django 1.11。