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

Django测试中调用get方法出现HttpResponseNotFound问题排查

解决方案

问题根源在于URL路径的末尾斜杠不匹配:

  • URL配置里定义的路径是request/download_template(没有末尾斜杠)
  • 测试代码里请求的路径是/request/download_template/(带有末尾斜杠)

Django的path()是精确匹配规则,不会自动兼容末尾斜杠的差异,所以测试请求的路径和配置的URL完全不匹配,直接返回404,自然也不会执行视图里的代码。

你可以任选以下两种方式修复:

  1. 修改测试代码,去掉请求路径末尾的斜杠:
response = self.client.get('/request/download_template')
  1. 修改URL配置,给路径加上末尾斜杠:
path('request/download_template/', ExampleView.as_view()),

额外提示:虽然Django默认开启APPEND_SLASH = True,会自动给缺少斜杠的请求重定向到带斜杠的路径,但测试用的APIClient默认不会自动跟随重定向,所以最稳妥的方式还是保持请求路径和URL配置完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:07:25