使用dj-rest-auth实现Facebook登录时报NoReverseMatch错误如何解决
修复方案
该报错是dj-rest-auth的社交登录逻辑依赖django-allauth内置的socialaccount_signup路由,当前未注册该路由导致查找失败,按以下步骤修复即可:
- 第一步:补充注册allauth社交账号路由
修改你的urls.py,在urlpatterns中新增allauth社交账号相关路由,修改后示例如下:
from django.urls import path, include # 你原有导入保持不变 app_name = "social_app" urlpatterns = [ path('v1/auth/', include('dj_rest_auth.urls')), path('v1/auth/registration/', include('dj_rest_auth.registration.urls')), path('v1/auth/facebook/', FacebookLogin.as_view(), name='fb_login'), # 新增下面这行配置 path('accounts/', include('allauth.socialaccount.urls')), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
- 第二步:确认基础配置正确
在settings.py中检查或追加以下配置:
# 配置站点ID,django-allauth依赖该配置 SITE_ID = 1 # 开启社交账号自动注册,无需跳转额外注册页 SOCIALACCOUNT_AUTO_SIGNUP = True
完成上述配置后重启服务即可解决该报错。
内容的提问来源于stack exchange,提问作者Mehady
相关产品推荐
相关产品推荐

