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

Django TodoApp添加任务报错:MultiValueDictKeyError求助

解决Django TodoApp添加任务时的MultiValueDictKeyError错误

MultiValueDictKeyError本质是你直接用request.POST['键名']访问了一个不存在的POST参数,大概率是表单字段名和代码里的键不匹配,或者字段没被正确提交导致的。按以下步骤排查修复:

  • 核对表单字段名与代码中的键
    打开处理添加任务的视图函数,找到获取POST参数的代码,确保你用的键和模板里表单输入框的name属性完全一致,比如模板里输入框是name="task",代码里就不能写成request.POST['tasks']。

  • 用get()方法替代直接索引
    把代码里类似task = request.POST['task']的写法改成task = request.POST.get('task'),这样就算字段不存在,只会返回None而不会抛出错误。如果需要默认空字符串,可写成request.POST.get('task', '')。

  • 先校验字段再处理逻辑
    在创建任务前先检查字段是否有值,避免空任务和错误触发:

    if request.method == 'POST':
        task_content = request.POST.get('task')
        if task_content.strip():
            TodoItem.objects.create(task=task_content)
            return redirect('todo_list')
        # 空任务的提示处理
        messages.error(request, '请输入任务内容')
    
  • 检查模板表单的正确性
    确保模板里的表单设置了method="POST",包含csrf令牌,输入字段的name属性正确:

    <form method="POST">
        {% csrf_token %}
        <input type="text" name="task" placeholder="输入新任务">
        <button type="submit">添加任务</button>
    </form>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:36:31