Подтвердить что ты не робот

Разнообразные модели Django 1.7

Я устанавливаю свое приложение в папку "project/apps/myapp". В обоих приложениях и папках 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'>.

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'>.
4b9b3361

Ответ 1

Вместо того, чтобы импортировать весь проект, а затем приложение, то модуль внутри приложения просто импортирует приложение, находящееся внутри проекта, а затем модуль.

Вместо

from webproject.app import model

Использование

from app import model

или

from app.models import Staffs

Ответ 2

Я думаю, этот отчет об ошибках (оказывается, это особенность) связан с вашей проблемой.

Для меня проблема была решена путем импорта только из resume.models, а не apps.resume.models. Поэтому выполните поиск "from apps." в вашем проекте и замените его.

(Для меня удаление __init__.py или изменение PYTHONPATH вызвало другие проблемы, я полагаю, что общий.)