2016-11-16 80 views
0

我陷入了學習的絆腳石python(3.5.2)和django(1.10.3)。我有一個項目,該項目有我的第一個應用程序。它是一個會員區。我預計這個應用程序將有很多模型,我喜歡將模型分解到自己的文件的想法。我已經看到了這個在這裏的解釋:https://code.djangoproject.com/wiki/CookBookSplitModelsToFilespython django將模型拆分成單獨的文件

-- MyApplication 
     |-- __init__.py 
     |-- settings.py 
     |-- urls.py 
     |-- wsgi.py 
    -- Members 
     |-- __init__.py 
     |-- admin.py 
     |-- apps.py 
     |-- migrations 
     | |-- __init__.py 
     |-- models 
     | |-- __init__.py 
     | |-- address.py 
     |-- tests.py 
     |-- urls.py 
     |-- views.py 
    -- manage.py 

Members/models/__init__.py看起來像

from address import Address 

Members/models/address.py看起來像

from django.db import models 

    class Address(models.Model): 

     Member_ID = models.ForeignKey(
      settings.AUTH_USER_MODEL, 
      on_delete=models.CASCADE 
     ) 
     Order = models.PositiveIntegerField() 

     ... 

MyApplication/Settings.py

INSTALLED_APPS = [ 
     'Members.apps.MembersConfig', 
     'django.contrib.admin', 
     'django.contrib.auth', 
     'django.contrib.contenttypes', 
     'django.contrib.sessions', 
     'django.contrib.messages', 
     'django.contrib.staticfiles', 
     ... 

當我去嘗試建立數據庫遷移,雖然我得到

$ python manage.py makemigrations Members 
Traceback (most recent call last): 
    File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/myUser/.pyenv/versions/3.5.2/lib/python3.5/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
    File "/home/myUser/.pyenv/versions/3.5.2/lib/python3.5/site-packages/django/core/management/__init__.py", line 341, in execute 
    django.setup() 
    File "/home/myUser/.pyenv/versions/3.5.2/lib/python3.5/site-packages/django/__init__.py", line 27, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/home/myUser/.pyenv/versions/3.5.2/lib/python3.5/site-packages/django/apps/registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "/home/myUser/.pyenv/versions/3.5.2/lib/python3.5/site-packages/django/apps/config.py", line 199, in import_models 
    self.models_module = import_module(models_module_name) 
    File "/home/myUser/.pyenv/versions/3.5.2/lib/python3.5/importlib/__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
    File "<frozen importlib._bootstrap_external>", line 665, in exec_module 
    File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
    File "/home/myUser/dev.aikidocia.org/MyApplication/Members/models/__init__.py", line 1, in <module> 
    from address import Address 
ImportError: No module named 'address' 

我缺少什麼?

+4

'來自進口。地址Address'。使用適當的相對導入。 – Evert

+0

非常感謝 –

回答

1

正如@Evert建議,使用正確的相對導入。

from .address import Address

相關問題