Django 应用程序启动期间 django-allauth settings.py 中出现断言错误

问题描述 投票:0回答:1

尝试启动开发服务器时,我的 Django 应用程序遇到断言错误。该错误发生在

django-allauth
包中,特别是
settings.py
文件中。我已经尝试重新安装
django-allauth
、检查依赖关系并检查我的配置,但没有成功。

当我尝试制作

ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
而不是
"none"

这是回溯:

Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 932, in _bootstrap_inner
    self.run()
  File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\User\Desktop\Main_project\venv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\User\Desktop\Main_project\venv\lib\site-packages\django\core\management\commands\runserver.py", line 125, in inner_run
    autoreload.raise_last_exception()
  File "C:\Users\User\Desktop\Main_project\venv\lib\site-packages\django\utils\autoreload.py", line 87, in raise_last_exception
    raise _exception[1]
  File "C:\Users\User\Desktop\Main_project\venv\lib\site-packages\django\core\management\__init__.py", line 398, in execute
    autoreload.check_errors(django.setup)()
  File "C:\Users\User\Desktop\Main_project\venv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\User\Desktop\Main_project\venv\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Users\User\Desktop\Main_project\venv\lib\site-packages\django\apps\registry.py", line 116, in populate
    app_config.import_models()
  File "C:\Users\User\Desktop\Main_project\venv\lib\site-packages\django\apps\config.py", line 269, in import_models
    self.models_module = import_module(models_module_name)
  File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\importlib\__init__.py", line 127, in import_m
odule
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\User\Desktop\Main_project\venv\lib\site-packages\allauth\account\models.py", line 9, in <module>
    from . import app_settings, signals
  File "C:\Users\User\Desktop\Main_project\venv\lib\site-packages\allauth\account\app_settings.py", line 373, in <modu
le>
    app_settings = AppSettings("ACCOUNT_")
  File "C:\Users\User\Desktop\Main_project\venv\lib\site-packages\allauth\account\app_settings.py", line 27, in __init
__
    assert (
AssertionError

我的问题:如何修复此错误,因为它仅在 ACCOUNT_EMAIL_VERIFICATION 为必填项时显示,如果没有则项目运行顺利。

python django django-allauth
1个回答
0
投票

当您将

AssertionError
设置为
ACCOUNT_EMAIL_VERIFICATION
时,您遇到的错误是 django-allauth 包中的
'mandatory'
。发生此错误是因为 django-allauth 包期望正确配置某些设置。

要解决此问题,您可以按照以下步骤操作:

  1. 确保您已安装最新版本的 django-allauth。您可以使用以下命令升级到最新版本:

    pip install --upgrade django-allauth
    
  2. 验证您是否已将

    'allauth'
    'allauth.account'
    包含在项目的
    INSTALLED_APPS
    文件的
    settings.py
    列表中:

    INSTALLED_APPS = [
        # other apps...
        'allauth',
        'allauth.account',
        # other apps...
    ]
    
  3. 仔细检查项目的

    urls.py
    文件,确保已包含 django-allauth 所需的 URL:

    urlpatterns = [
        # other URL patterns...
        path('accounts/', include('allauth.urls')),
        # other URL patterns...
    ]
    
  4. 如果您有自定义用户模型,请确保在项目的

    settings.py
    文件中正确配置它。您可以使用
    AUTH_USER_MODEL
    设置指定自定义用户模型:

    AUTH_USER_MODEL = 'yourapp.YourCustomUserModel'
    
  5. 查看

    settings.py
    文件中与电子邮件验证相关的其他设置。确保您已正确配置设置,例如
    EMAIL_BACKEND
    ACCOUNT_EMAIL_REQUIRED
    ACCOUNT_EMAIL_VERIFICATION

    以下是电子邮件验证的示例配置:

    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    ACCOUNT_EMAIL_REQUIRED = True
    ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
    

    确保您配置了与您的电子邮件服务提供商匹配的有效电子邮件后端。

  6. 如果问题仍然存在,请尝试从项目目录中删除所有已编译的 Python 文件(.pyc 或 pycache),以消除任何潜在的缓存问题。

我希望它成功了

© www.soinside.com 2019 - 2024. All rights reserved.