django.core.exceptions.ImproperlyConfigured:无法导入“类别”。检查“api.category.apps.CategoryConfig.name”是否正确

我正在使用 Django 3.2Django REST Framework 。主项目名称为 ECOMapi 为 app。在 api 内部有多个应用程序,如类别、迁移、订单、支付、产品、用户。现在我想通知 ecom.settings 已安装的 api 。我应该怎么做?

settings.pyECOM

INSTALLED_APPS = [
     #other basic install
    'corsheaders',
    'rest_framework',
    'rest_framework.authtoken',
    'api',
    'api.category',
]

但得到错误。

我的类别 apps.py 文件看起来像

class CategoryConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'category'
stack overflow django.core.exceptions.ImproperlyConfigured: Cannot import 'category'. Check that 'api.category.apps.CategoryConfig.name' is correct
原文答案
author avatar

接受的答案

尝试像这样更改您的类别 name 中的 apps.py

class CategoryConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'api.category'

答案:

作者头像

AppConfig.name 是该应用程序的完整python路径。在您的情况下,您的应用程序类别在另一个名为API的应用程序内部,因此请尝试将您的应用程序更改为以下内容:

class CategoryConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'api.category' // full path to your app category

Django文档的来源: https://docs.djangoproject.com/en/4.0/ref/applications/#django.apps.AppConfig.name

作者头像

您必须通过在其中创建一个 api 文件来将 __init__.py 目录变成一个包。然后在 api 列表中添加 INSTALLED_APPS 而不是只添加 api.category

像这样 -

INSTALLED_APPS = [
     #other basic install
    'corsheaders',
    'rest_framework',
    'rest_framework.authtoken',
    'api.category',
]

相关问题