You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyTest运行测试时遇dj_rest_auth弃用警告及配置错误

问题解决指南:PyTest中的Django警告与dj-rest-auth配置错误

一、搞定RemovedInDjango40Warning警告

运行PyTest时收到10条RemovedInDjango40Warning,提示django.conf.urls.url()已被弃用,得换成django.urls.re_path(),警告源头是dj_rest_auth的注册urls文件。如果之前在setup.cfg里配置过滤没效果,试试这两个方法:

  • 直接升级dj-rest-auth
    旧版的dj-rest-auth还在使用弃用的url()方法,升级到最新稳定版就能彻底解决:
    pip install --upgrade dj-rest-auth
    
  • 精准过滤警告(升级不了时用)
    要是暂时没法升级,就在项目根目录的pytest.ini里加更针对性的过滤规则(比setup.cfg对PyTest更管用):
    [pytest]
    filterwarnings =
        ignore::RemovedInDjango40Warning:dj_rest_auth.registration.urls
    

二、解决dj-rest-auth的ImproperlyConfigured错误

这个错误大多是邮箱验证相关的配置没弄全,按下面步骤来:

  1. 补全settings.py里的必要配置
    确保添加这些内容:
    # 开启邮箱验证
    ACCOUNT_EMAIL_VERIFICATION = "mandatory"
    ACCOUNT_EMAIL_REQUIRED = True
    
    # 开发环境用控制台输出邮件(生产环境换真实邮件后端)
    EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
    
  2. 检查URL路由配置
    项目的urls.py里要正确引入dj-rest-auth的注册路由,别写错路径:
    from django.urls import path, include
    
    urlpatterns = [
        # 其他路由...
        path('api/v1/auth/', include('dj_rest_auth.urls')),
        path('api/v1/auth/registration/', include('dj_rest_auth.registration.urls')),
    ]
    
  3. 确认依赖包装全了
    dj-rest-auth的注册功能依赖django-allauth,先装包:
    pip install django-allauth
    
    然后在settings.py的INSTALLED_APPS里加上这些应用:
    INSTALLED_APPS = [
        # 其他已有的应用...
        'django.contrib.sites',
        'allauth',
        'allauth.account',
        'allauth.socialaccount',
        'dj_rest_auth.registration',
    ]
    
    # 必须设置SITE_ID
    SITE_ID = 1
    

内容的提问来源于stack exchange,提问作者I'mSRJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 16:55:42