如何在Django中修复MultiValueDictKeyError

km0tfn4u  于 2022-12-14  发布在  Go
关注(0)|答案(1)|浏览(129)

这是我的表格

<h1>ADD LIST</h1>
        <form action="addList/" method="post">
            {% csrf_token %}
            <div class = "container">
                <label>List Name</label><br>
                <input  name="listname" class= "listNamec"><br><br></input>
                <label>List title</label><br>
                <input name="listtitle"  class= "listTitlec"><br><br></input>  
            </div>
        </form>

这是我的职责

def addList(response):

    listname = response.POST['listname']

    list.name = listname
    list.save()

    return render(response, 'main/index.html', {})

错误:

raise MultiValueDictKeyError(key)
django.utils.datastructures.MultiValueDictKeyError: 'listname'

我需要将这些添加到Todolist数据库中,并且不工作:(

x6yk4ghg

x6yk4ghg1#

基本上,当你试图访问一个不存在于MultiValueDict中的键时,就会发生这个错误。你需要先验证这个键是否存在,然后才能得到它的值:

# using the `in` keyword
if "listname" in request.POST:
    listname = response.POST["listname"]

# or using the `get` method
listname = request.POST.get("listname", False)
if listname:
    ...

确保在键不存在时返回一个错误,并且,既然你已经遇到了这个错误,那么请确认你确实正确地将表单数据传递给了路由,确保阅读了django文档并理解表单是如何被处理的。

相关问题