【问题标题】:( django.core.exceptions.ImproperlyConfigured: Cannot import 'apps.accounts'. Check that 'mysite.apps.accounts.apps.AccountsConfig.name' is correct(django.core.exceptions.ImproperlyConfigured:无法导入“apps.accounts”。检查“mysite.apps.accounts.apps.AccountsConfig.name”是否正确
【发布时间】:2022-07-04 18:35:17
【问题描述】:

这就是它的结构 accounts文件夹文件的apps.py里面的代码是

from django.apps import AppConfig
class AccountsConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = "apps.accounts"

Settings里面的代码是

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'mysite.apps.accounts',
]

我尝试将 'mysite.apps.accounts', 更改为 'mysite.apps.AccountsConfig', 并将 name = "apps.accounts" 更改为 name = "accounts" 我是 Django 新手,正在关注 How to make a website with Python and Django - MODELS AND MIGRATIONS (E04) 教程。当我在 vscode 终端输入python manage.py makemigrate 时,16:17 附近是我的 error 出现的地方 错误是

配置不当(django.core.exceptions.ImproperlyConfigured: 无法导入“apps.accounts”。检查 'mysite.apps.accounts.apps.AccountsConfig.name' 是正确的。 有人请帮帮我。

【问题讨论】:

    标签: python django django-templates configure


    【解决方案1】:

    要定义新应用,您无需添加它的路径即可 app 它的名字就是'accounts' 注意app名字是区分大小写的

    所以你安装的应用变成了:

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'accounts',
    ]
    

    【讨论】:

    • 当我这样做时,我得到一个错误 ModuleNotFoundError: No module named 'accounts'
    【解决方案2】:

    解决方案非常违反直觉。你必须删除

    class AccountsConfig(AppConfig):
        default_auto_field = 'django.db.models.BigAutoField'
        name = "accounts"
    

    来自apps.py\accounts\apps\mysite。然后运行 ​​python manage.py makemigrations 并创建 2 个新模型“UserPersona”和“UserProfile”。终端中的输出:

    mysite\apps\accounts\migrations\0001_initial.py
        - Create model UserPersona
        - Create model UserProfile
    

    【讨论】:

    • 抱歉打扰了,但这不会修改或影响整个网站的功能吗?我和你有同样的问题,我相信
    【解决方案3】:

    apps.py 中的 name 应该与您在 INSTALLED_APPS(settings.py 中)中输入的(值)相同。

    这是正确的

    from django.apps import AppConfig
    class AccountsConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = "mysite.apps.accounts"
    

    设置代码

    INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'mysite.apps.accounts',
    ]
    

    【讨论】:

      猜你喜欢
      • 2021-09-05
      • 2021-07-25
      • 2023-01-26
      • 2023-03-28
      • 1970-01-01
      • 2022-08-20
      • 2017-07-24
      • 2014-06-06
      • 1970-01-01
      相关资源
      最近更新 更多