天天看点

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文件夹,没有找到所以就开始报这样的错了。

继续阅读