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

Django开发简单Hi应用访问/hi/路由报__init__()参数不匹配错误

Django访问/hi/路径报错修复方案

报错触发的核心原因

__init__() takes 1 positional argument but 2 were given报错的本质是类实例化时,传入的位置参数数量超出了类构造方法的定义要求。对照代码,问题全部出在视图的返回逻辑上:

  • HttpRequest是Django内置的请求封装类,作用是承接客户端发送的请求信息,由框架自动初始化并作为第一个参数传给视图函数,该类的构造方法仅接收self,不支持传入任何自定义位置参数。
  • 视图代码中return HttpRequest('Hi.')的写法,会主动调用HttpRequest的构造方法并多传入一个字符串参数'Hi.',直接触发构造函数参数不匹配的报错。
  • 附带逻辑错误:Django视图强制要求返回值必须是HttpResponse及其子类的实例,HttpRequest是请求对象,本身无法作为响应返回给客户端。

具体修复步骤

  • 调整views.py的导入与返回逻辑:把错误导入的HttpRequest替换为对应的响应类HttpResponse,修正后视图代码为:
    # hi/views.py
    from django.http import HttpResponse
    
    def hiView(request):
        # HttpResponse 构造方法支持传入文本作为响应主体
        return HttpResponse('Hi.')
    
  • 现有路由配置无需修改:在urls.py中将函数视图hiView绑定到/hi/路径的写法,完全符合Django的路由规则。
  • 应用注册配置无需调整:已经在settings.py的INSTALLED_APPS中完成hi应用的注册,配置正确。

效果验证

保存修改后重启Django开发服务器,再次访问/hi/路径,页面即可正常返回Hi.的文本内容,报错会直接消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 23:45:04