2014-10-27 169 views
20

我在“project/apps/myapp”文件夹中安装我的应用程序。这两个应用程序和myapp文件夹都有init .py文件(没有任何一个模块缺少错误)。现在,我的错误:Django 1.7冲突模型

Exception Type: RuntimeError at/
    Exception Value: Conflicting 'person' models in application 'resume': <class 
'apps.resume.models.Person'> and <class 'resume.models.Person'>. 

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'>. 
+0

你有 “恢复” 无论是在_project/resume_和_project /应用/ resume_应用程序? – dukebody 2014-10-27 17:25:15

+0

不仅“项目/应用程序/简历” – Crampus 2014-10-27 17:51:00

+0

你可以做'从apps.resume.models导入Person为Person1;从resume.models导入Person作为Person2;打印Person1 .__ file__;打印Person2 .__ file__'并在这里发布结果? – dukebody 2014-10-28 08:26:19

回答

7

,而不是导入所有项目,然后将应用程序,然后在应用程序中的模块只需要导入的应用程序,它是内部的该项目然后是模块。

而不是

from webproject.app import model 

使用

from app import model 

from app.models import Staffs 
4

我觉得this bug report(原来它是一个功能)是关系到你的问题。

对我来说,问题只能通过从resume.models导入而不是apps.resume.models来解决。因此,在您的项目中搜索"from apps."并将其替换。

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