我有一个与Django 1.6配合良好的Django项目,但在尝试升级到Django 1.7时给我带来了很多麻烦。
在此项目中,应用my_app
不包含任何自己的模型,但包含使用other_models.py
的文件python manage.py inspectdb
,generated to interact with a legacy database。当我连接到这个辅助数据库时,我想只在特定的代码路径中使用这些模型。再次,这与Django 1.6一起运行良好。
升级到Django 1.7后,我无法再使用python manage.py test
运行我的测试套件。当我这样做时,我得到了大量的错误,如下所示:
CommandError: System check identified some issues:
ERRORS:
my_app.AccountAccount.created_by_type: (fields.E304) Reverse accessor for 'AccountAccount.created_by_type' clashes with reverse accessor for 'AccountAccount.deactivated_by_type'.
HINT: Add or change a related_name argument to the definition for 'AccountAccount.created_by_type' or 'AccountAccount.deactivated_by_type'.
...
# Tons more of these
这些错误都在抱怨other_models.py
中定义的模型。在我看来changes in app-loading process引起了我的问题,但我并不完全确定。
我尝试使用以下代码在此应用中设置apps.py
:
from django.apps import AppConfig
class MyAppConfig(AppConfig):
name = 'my_app'
models_module = None
并根据documentation on configuring applications将default_app_config = 'my_app.apps.MyAppConfig'
添加到我的my_app.__init__.py
,但无济于事。
我完全不知道接下来要做什么,并且非常感谢有关如何控制Django何时以及如何加载模型的信息,特别是在运行python manage.py test
时。