2014-10-27 18 views
20

Tôi cài đặt ứng dụng của mình trong thư mục "project/apps/myapp". Cả thư mục ứng dụng và thư mục myapp đều có các tệp init .py (Không có bất kỳ tệp nào trong số đó có lỗi mô-đun bị thiếu). Bây giờ tôi đã gặp lỗi:Django 1.7 mô hình xung đột

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

Django nhập cùng một kiểu với hai đường khác nhau. Làm thế nào tôi có thể sửa chữa nó?

Full log lỗi:

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

Bạn có sự "tiếp tục" ứng dụng cả ở _project/resume_ và _project/apps/resume_? – dukebody

+0

không chỉ "project/apps/resume" – Crampus

+0

Bạn có thể làm 'từ apps.resume.models import Person là Person1; từ resume.models nhập khẩu Person là Person2; in Person1 .__ file__; in Person2 .__ file__' và đăng kết quả ở đây? – dukebody

Trả lời

7

Thay vì nhập khẩu tất cả các dự án sau đó ứng dụng sau đó các module bên trong ứng dụng chỉ nhập khẩu các ứng dụng mà là bên trong dự án sau đó là mô-đun.

Thay vì

from webproject.app import model 

Sử dụng

from app import model 

hoặc

from app.models import Staffs 
4

Tôi nghĩ this bug report (Hóa ra đó là một tính năng) có liên quan đến vấn đề của bạn.

Đối với tôi, sự cố đã được giải quyết bằng cách chỉ nhập từ resume.models, thay vì apps.resume.models. Vì vậy, tìm kiếm "from apps." trong dự án của bạn và thay thế nó.

(Đối với tôi, loại bỏ __init__.py hoặc thay đổi PYTHONPATH gây ra các vấn đề khác, tôi tưởng tượng đó là phổ biến.)

Các vấn đề liên quan