request.POST不读取Django中的表单数据

时间:2020-10-29 05:46:02

标签: python django

我有我的视图文件:

from django.shortcuts import render
from .models import Note
# Create your views here.

def index(request): 
    return render(request, "index.html", {})

def write(request): 
    notes = Note.objects 
    return render(request, "write.html", {})

def create(request): 
    if request.POST: 

        body = request.POST['note']
        title = request.POST['title']

        print(f'title = { title }\nbody = { body }'

和我的html代码:

<h1>CREATE A NOTE</h1>

<form action="{% url 'notes:create' %}" method="post">
{% csrf_token %}

    <label for="title">Title</label>
    <input type="text" name="title"><br> 
    <label for="note">Note</label>
    <input type="text" name="note"><br>

    <input type="submit" value="Submit">
</form>

每当我提交此表单并尝试访问标题或注释值时,我都会收到MultiValueDictKeyError

1 个答案:

答案 0 :(得分:0)

当您尝试从MultiValueDictKeyError访问不存在的内容时,会出现request.POST。基本上与python KeyError相同。使用request.POST.get('key', 'default_if_key_doesn't exist')

def create(request): 
    if request.POST: 
        body = request.POST.get('note', '')
        title = request.POST('title', '')

        print(f'title = { title }\nbody = { body }'