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

DJ4E课程Ad List #1自动评分任务遇405错误及HTML元素检测失败求助

DJ4E课程Ad List #1自动评分任务遇405错误及HTML元素检测失败求助

嘿,我看了你的问题和代码,大概率是自动评分工具的请求方式和你的LogoutView配置不匹配导致的!

问题根源

Django自带的LogoutView默认只接受POST请求(这是为了避免CSRF攻击的安全设计),但自动评分工具应该是直接用GET请求访问了logout/?next=/ads/这个地址。这时候服务器会返回405 Method Not Allowed错误,对应的错误页面通常是非常简洁的(甚至没有完整的HTML结构),所以评分工具检测不到页面元素,才会报“节点列表为空”的错误。

解决办法

1. 让LogoutView接受GET请求

修改你urls.py里的logout路径配置,给LogoutView加上http_method_names参数,允许GET请求:

path('logout/', LogoutView.as_view(
    next_page=reverse_lazy('ads:all'),
    http_method_names=['get', 'post', 'options']
), name='logout'),

这样不管是你模板里的POST表单提交,还是评分工具的GET请求,都能正常处理,并且跳转到有完整HTML结构的广告列表页,评分工具就能识别到页面内容了。

2. 确认跳转页面的完整性

虽然你已经设置了登出后跳转到ads:all,但要确保广告列表页确实继承了你的base_bootstrap.html,有完整的HTML结构——毕竟评分工具需要检测页面里的元素,空白或不完整的页面还是会导致失败。

3. 检查URL与模板的一致性

你的模板里logout表单的action是/logout/?next={% url 'ads:all' %},和urls里的logout/路径是匹配的,这部分没问题。如果之后你改用django.contrib.auth.urls里的accounts/logout/,记得同步修改模板里的action路径。

试试这些调整,应该能解决评分工具的最后一个测试项问题!

备注:内容来源于stack exchange,提问作者Lucas Patriquin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 15:29:33