尝试启动开发服务器时,我的 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 为必填项时显示,如果没有则项目运行顺利。
当您将
AssertionError
设置为 ACCOUNT_EMAIL_VERIFICATION
时,您遇到的错误是 django-allauth 包中的 'mandatory'
。发生此错误是因为 django-allauth 包期望正确配置某些设置。
要解决此问题,您可以按照以下步骤操作:
确保您已安装最新版本的 django-allauth。您可以使用以下命令升级到最新版本:
pip install --upgrade django-allauth
验证您是否已将
'allauth'
和 'allauth.account'
包含在项目的 INSTALLED_APPS
文件的 settings.py
列表中:
INSTALLED_APPS = [
# other apps...
'allauth',
'allauth.account',
# other apps...
]
仔细检查项目的
urls.py
文件,确保已包含 django-allauth 所需的 URL:
urlpatterns = [
# other URL patterns...
path('accounts/', include('allauth.urls')),
# other URL patterns...
]
如果您有自定义用户模型,请确保在项目的
settings.py
文件中正确配置它。您可以使用 AUTH_USER_MODEL
设置指定自定义用户模型:
AUTH_USER_MODEL = 'yourapp.YourCustomUserModel'
查看
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'
确保您配置了与您的电子邮件服务提供商匹配的有效电子邮件后端。
如果问题仍然存在,请尝试从项目目录中删除所有已编译的 Python 文件(.pyc 或 pycache),以消除任何潜在的缓存问题。
我希望它成功了