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

Django框架使用Djoser执行用户激活操作时出现404错误求助

问题原因

你的404错误由两个核心问题导致:

  • 自定义视图的post方法中,请求的目标地址配置错误:你将激活请求发给了自己定义的ACTIVATION_BASE_ROUTE路径,该路径下仅配置了带uid、token参数的路由规则,无对应根路径的post处理逻辑,自然返回404。
  • 发送json格式的payload时未指定请求头,即使地址正确djoser也无法正常解析请求参数。

修复步骤

1. 修正ActivationView的post请求逻辑

修改Activate_User_App/views.py中的post方法,将请求目标改为djoser自带的激活接口,同时补充json请求头:

def post (self, request, uid, token):
    print('UID : ', uid)
    print('Token : ', token)
    payload = json.dumps({'uid': uid, 'token': token})
    print("payload : " , payload)
    protocol = 'https://' if request.is_secure() else 'http://'
    web_url = protocol + request.get_host()
    # 替换为djoser的激活接口地址
    post_url = web_url + '/api/authentication/users/activation/'
    print('post_url : ' + post_url)
    # 补充Content-Type请求头
    response = requests.post(post_url, data = payload, headers={'Content-Type': 'application/json'})
    print("response : ", response)
    return HttpResponse(response.text)

2. 可选调整路由顺序

将project/urls.py中djoser的路由配置移到自定义激活路由之前,避免路径优先级冲突:

urlpatterns = [ 
    re_path(r'^api/authentication/', include('djoser.urls')),
    re_path(r'^api/authentication/', include('djoser.urls.authtoken')),
    path(ACTIVATION_BASE_ROUTE, include('Activate_User_App.urls')),
]

修复后重新测试即可正常完成用户激活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:57:00