You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Django allauth出现Not Found: /accounts/facebook/login错误求助

解决Django allauth Facebook登录出现404的问题

看起来你遇到的是典型的路由配置缺失或者环境同步问题,毕竟之前笔记本上能正常运行,说明核心逻辑没问题,台式机这边大概率是配置没同步到位或者依赖环境有差异。我给你列几个最关键的排查方向:

1. 确认项目根路由已正确引入allauth的accounts路径

先检查项目根目录的urls.py,必须确保allauth的路由被正确包含,代码应该类似这样:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/', include('allauth.urls')),  # 这一行是核心,不能缺失
]

如果这行漏写,Django根本找不到/accounts/facebook/login这个路径,直接返回404。

2. 检查INSTALLED_APPS里的allauth相关应用是否齐全

打开settings.py,确认INSTALLED_APPS包含allauth核心模块和Facebook提供者:

INSTALLED_APPS = [
    # ... 其他默认应用
    'django.contrib.sites',

    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.facebook',  # Facebook登录必须加这个
]

要是没加allauth.socialaccount.providers.facebook,allauth不会生成Facebook相关的登录路由。

3. 验证SITE_ID配置与后台站点设置

settings.py里必须设置正确的SITE_ID:

SITE_ID = 1

同时登录Django后台(/admin/sites/site/),确认该站点的域名和你台式机本地运行的域名一致(比如localhost:8000127.0.0.1:8000),Facebook应用的回调地址也要和这个域名匹配。

4. 核对虚拟环境的依赖版本

有可能台式机的虚拟环境里allauth版本和笔记本不一致,或者依赖没装全。试试卸载重装最新版:

pip uninstall django-allauth
pip install django-allauth

装完后一定要重启Django服务器,依赖更新通常需要重启才能生效。

5. 清理缓存与重新迁移(极端情况)

如果上面都没问题,试试清理Django缓存并重新执行迁移:

python manage.py clearcache
python manage.py makemigrations
python manage.py migrate

旧缓存或未同步的迁移偶尔会导致路由加载异常。

最后验证路由列表

你可以运行这个命令查看当前Django所有已注册的路由,确认/accounts/facebook/login是否存在:

python manage.py show_urls

如果列表里找不到这个路径,那肯定是前面的配置有问题;如果能找到,再核对下Facebook应用的回调地址是否为http://localhost:8000/accounts/facebook/login/callback/,确保没有拼写错误。

内容的提问来源于stack exchange,提问作者Ahtisham

火山引擎 最新活动