Django 1.7冲突的模型

Cra*_*pus 23 django python-module django-models

我在"project/apps/myapp"文件夹中安装我的应用程序.apps和myapp文件夹都有init .py文件(没有任何模块缺少模块错误).现在我有错误:

Exception Type: RuntimeError at /
    Exception Value: Conflicting 'person' models in application 'resume': <class
 'apps.resume.models.Person'> and <class 'resume.models.Person'>.
Run Code Online (Sandbox Code Playgroud)

Django使用两个不同的pathes导入相同的模型.我该如何解决?

完整错误日志:

Traceback:
File "/home/voxa/.virtualenvs/42-test/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  98.                 resolver_match = resolver.resolve(request.path_info)
File "/home/voxa/.virtualenvs/42-test/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
  343.             for pattern in self.url_patterns:
File "/home/voxa/.virtualenvs/42-test/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns
  372.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/home/voxa/.virtualenvs/42-test/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module
  366.             self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib/python2.7/importlib/__init__.py" in import_module
  37.     __import__(name)
File "/home/voxa/django/FortyTwoTestTask/fortytwo_test_task/urls.py" in <module>
  4. from resume import views
File "/home/voxa/django/FortyTwoTestTask/apps/resume/views.py" in <module>
  4. from resume.models import Person
File "/home/voxa/django/FortyTwoTestTask/apps/resume/models.py" in <module>
  3. class Person(models.Model):
File "/home/voxa/.virtualenvs/42-test/local/lib/python2.7/site-packages/django/db/models/base.py" in __new__
  285.         new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
File "/home/voxa/.virtualenvs/42-test/local/lib/python2.7/site-packages/django/apps/registry.py" in register_model
  213.                 (model_name, app_label, app_models[model_name], model))

Exception Type: RuntimeError at /
Exception Value: Conflicting 'person' models in application 'resume': <class 'apps.resume.models.Person'> and <class 'resume.models.Person'>.
Run Code Online (Sandbox Code Playgroud)

小智 8

而不是导入所有项目然后应用程序,然后应用程序内的模块只导入项目内的应用程序,然后导入模块.

代替

from webproject.app import model
Run Code Online (Sandbox Code Playgroud)

使用

from app import model
Run Code Online (Sandbox Code Playgroud)

要么

from app.models import Staffs
Run Code Online (Sandbox Code Playgroud)


Mar*_*ark 5

我认为这个错误报告(原来它是一个功能)与您的问题有关。

对我来说,问题是通过resume.models只导入 from而不是apps.resume.models. 所以"from apps."在你的项目中搜索并替换它。

(对我来说,消除__init__.py或改变PYTHONPATH引起的其他问题,我想这很常见。)