【问题标题】:Upgrading from Django 1.6.7 to 1.8.3, RuntimeError: Conflicting models in application从 Django 1.6.7 升级到 1.8.3,RuntimeError: Conflicting models in application
【发布时间】:2015-10-13 06:47:38
【问题描述】:

我正在使用 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

所以,我采取了另一种方法,如 https://code.djangoproject.com/ticket/22280 中提到的那样,在 project/ 中删除了 __init__.py

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

请帮我调试一下。

【问题讨论】:

    标签: python django django-models upgrade django-1.8


    【解决方案1】:

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

    from sa2.models import Mo1, Mo2, Mo3 
    

    或者

    from .models import Mo1, Mo2, Mo3
    

    CATCH:确保在您的 forms.py、tests.py 或您导入这些模型的其他任何地方使用相同的导入。如果您只更新其中一个导入,它将不起作用,您仍然会收到相同的错误。

    由于双重导入而出现问题。欲了解更多信息,请参阅:The Double Import Trap

    祝你好运

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

    【讨论】:

      【解决方案2】:

      删除项目文件夹中的__init __.py 文件。在 Django 中使用 test 时出现同样的错误,然后我将其删除,错误消失了。

      【讨论】:

        猜你喜欢
        • 2015-01-07
        • 1970-01-01
        • 2020-12-06
        • 1970-01-01
        • 2013-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-17
        相关资源
        最近更新 更多