2014-10-27 2 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 импортировать ту же модель с двумя разными дорожками. Как я могу это исправить?

Полный журнал регистрации ошибок:

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

+0

нет только «проект/приложения/резюме» – Crampus

+0

Можете ли вы сделать из apps.resume.models import Person as Person1; от resume.models import Person as Person2; print Person1 .__ file__; распечатать Person2 .__ file__' и опубликовать результаты здесь? – dukebody

ответ

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 вызванных других проблем, я думаю, что это общее.)

Смежные вопросы