天天看點

RuntimeError: Model class apps.users.models.UserProfile doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

下面這個是我在項目下面建構的項目目錄結構,apps裡面是所有的應用

RuntimeError: Model class apps.users.models.UserProfile doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

于是下面我追加了項目的導包路徑,友善導包

import os

import sys

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, os.path.join(BASE_DIR, 'apps')) sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))

經過排查發現報這個錯誤的原因是因為我導包的時候代碼是這樣寫的:

from apps.users.models import BaseModel

from apps.courses.models import Course

于是我把apps去掉之後,就沒有報錯了:

from users.models import BaseModel

from courses.models import Course

總結:個人認為之是以會這麼報錯的原因是,我們添加了這兩個導包路徑之後。項目每次導包時都會從這些導包路徑,然後往下開始找,首先就是找這些導包路徑之下的apps檔案夾,沒有找到是以就開始報這樣的錯了。

繼續閱讀