我在運行Django 1.10.6的Ubuntu機器上安裝Django應用程序時出現嚴重問題。Django 1.10 makemigrations錯誤
我習慣於使用舊版本的Django,現在我無法安裝我的webapp。這裏的情況:
我有一個名爲myproject的Django項目。文件結構是:
(BASEDIR)/manage.py
(BASEDIR)/mycommon/ # I will discuss mycommon below
(BASEDIR)/myproject/
(BASEDIR)/myproject/settings.py
(BASEDIR)/myproject/urls.py
(BASEDIR)/myproject/views.py
(BASEDIR)/myproject/wsgi.py
(BASEDIR)/myproject/models/
(BASEDIR)/myproject/models/__init__.py
(BASEDIR)/myproject/models/models.py
事實證明,這個項目我需要把我的模型在一個共同的包,因爲還有另外一個Python應用程序(使用雙絞線是自舉的Django)需要訪問這些模型。我將把這個包叫做「mycommon」。所以,我的 「真實」 的車型在這裏:
(BASEDIR)/mycommon/
(BASEDIR)/mycommon/utils.py
(BASEDIR)/mycommon/models/
(BASEDIR)/mycommon/models/__init__.py
(BASEDIR)/mycommon/models/models.py
所以Django的設置文件是在(BASEDIR)/myproject/settings.py和INSTALLED_APPS參數設置爲這樣:
INSTALLED_APPS = (
'myproject.models',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
)
最後,注意,MyProject的/模型/ models.py很簡單,因爲它只是使用了mycommon型號:
from django.db import models
from mycommon.models.models import *
到目前爲止好,這是在較舊版本的Django精細的結構。無論如何,我開始用空MYSQL數據庫(創建,但空的),現在我回去(BASEDIR)並運行此:
python manage.py makemigrations mycommon.models
不幸的是,我得到這樣的錯誤:
RuntimeError: Model class mycommon.models.models.SomeModel doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
所以我究竟做錯了什麼?