从Django 1.6.7升级到1.8.3,RuntimeError:应用程序中的冲突模型

问题描述 投票:3回答:2

我正在使用Django 1.8.3和Python 2.7.6

My project structure:
project/
   __init__.py
   app/
      __init__.py
      sa1/
         __init__.py
         admin.py
         models.py
         interface.py
      sa2/
         __init__.py
         forms.py
         urls.py
         views.py
      app/
         __init__.py
         admin.py
         models.py
         tests.py
         views.py

我尝试在sa2 / forms.py中导入模型,如下所示:

from project.app.sa2.models import Mo1, Mo2, Mo3

这引起了一个错误 -

Exception Type: RuntimeError at /
    Exception Value: Conflicting 'mo1' models in application 'app': <class
 'project.app.models.Mo1'> and <class 'app.models.Mo1'>

我试图使用:Django 1.7 conflicting models来解决它

所以,我把它改成了:

from app.sa2.models import Mo1, Mo2, Mo3

这引发了一个错误=> ImportError: no module named sa2

所以,我采取了另一种方法,在项目中摆脱__init__.py /如https://code.djangoproject.com/ticket/22280所述

这引发了另一个错误=> ImportError: No module named project.website.settings

请帮我调试一下。

python django django-models upgrade django-1.8
2个回答
2
投票

我遇到了一些问题。从sa2内尝试

from sa2.models import Mo1, Mo2, Mo3 

或者

from .models import Mo1, Mo2, Mo3

捕获:确保在forms.py,tests.py或导入这些模型的任何其他位置使用相同的导入。如果只更新其中一个导入它将无法正常工作,您仍然会得到相同的错误。

出现问题是因为双重导入。有关更多信息,请参阅:The Double Import Trap

祝好运

附:没有__init__.py在这个过程中受伤


0
投票

删除项目文件夹中的__init __.py文件。我在Django中使用测试时遇到同样的错误然后我删除它,错误就消失了。

© www.soinside.com 2019 - 2024. All rights reserved.