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

Django CRUD项目报userpost()不识别instance关键字参数错误求助

错误原因
  • 核心错误出现在views.py的update视图逻辑中,你误将模型类userpost当做表单类customerform来实例化:
    • instance是Django ModelForm类的专属参数,用于绑定要修改的数据库记录,模型类的构造方法不支持该参数,直接调用userpost(instance=xxx)必然触发参数不匹配报错。
    • POST请求分支里还存在参数名拼写错误,你写的isinstance=get_user_data应为instance=get_user_data。
  • 附加小问题:urls.py中更新接口的路径定义缺少分隔符,update<int:pk>/ 应改为 update/<int:pk>/,否则路由匹配逻辑不符合常规REST风格,也容易出现路径匹配错误。
修正后的update视图代码
#Updating the post
def update(request,pk):
    get_user_data=get_object_or_404(userpost,pk=pk)
    # 替换为表单类customerform,不是模型类userpost
    form= customerform(instance=get_user_data)
    if request.method=='POST':
        # 修正拼写错误,参数是instance不是isinstance,同时用表单类实例化
        form=customerform(request.POST,instance=get_user_data)
        if form.is_valid():
            form.save()
            messages.success(request,'User data has been Updated')
            return redirect('read')
    context={'form':form}
    return render(request,'update.html',context)
补充说明

你在create视图里已经正确使用了customerform来实例化表单,更新逻辑复用同一个表单类即可,不需要调用模型类来生成表单对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:15:02