2014-10-27 12 views
20

Installa la mia applicazione nella cartella "project/apps/myapp". Entrambe le cartelle app e myapp hanno init .py files (senza nessuno di questi vi è un errore mancante del modulo). Ora ho l'errore:Django 1.7 modelli in conflitto

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

Django importa lo stesso modello con due percorsi diversi. Come posso ripararlo?

log degli errori completa:

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

Avete il "riprendere" app sia a _project/resume_ e _project/apps/resume_? – dukebody

+0

non solo "progetto/app/riprendi" – Crampus

+0

Puoi fare 'da apps.resume.models importare Persona come Persona1; da resume.models importa Persona come Persona2; stampa Person1 .__ file__; stampa Person2 .__ file__' e pubblica qui i risultati? – dukebody

risposta

7

Invece di importare il tutto del progetto quindi l'applicazione allora il modulo all'interno della app appena importare l'applicazione che si trova all'interno il progetto quindi il modulo.

Invece di

from webproject.app import model 

Usa

from app import model 

o

from app.models import Staffs 
4

Penso this bug report (risulta è una caratteristica) è legato al vostro problema.

Per me il problema è stato risolto importando solo da resume.models, anziché da apps.resume.models. Quindi cerca "from apps." nel tuo progetto e sostituiscilo.

(Per me, la rimozione __init__.py o modificare i PYTHONPATH causato altri problemi, immagino che è comune.)