这是我的表格:

<form action="" method="POST"> {% csrf_token %}
  <div class="col-4"> <input type="text" name="ad" placeholder="İsim"> 
     
  {% for question in model.get_questions %}
  <div class="question col-6">
    <div class="header"> {{ question }} <input type="checkbox" name="answ{{forloop.counter0}}"> 
    </div>
  </div>    
  {% endfor %}

  <input type="submit" value="Gönder">
</form>

当我试图在视图中获得request.POST['ad']分时,它非常有效,但当我试图获得answ0分时,它不起作用.当我打印request.POST时,它也不会出现.这是我收到的错误:

MultiValueDictKeyError at /form/1
'answ0'

问题出在哪里?

推荐答案

如果复选框被选中not,则它根本不是请求的一部分.因此,如果勾选answ2answ4,则answ0answ1answ3将成为请求的一部分.

因此,您将看到:

if 'answ0' in request.POST:
    pass  # 🖘 checked
else:
    pass  # 🖘 not checked

复选框有点棘手,就像date输入一样.因此,通常至少使用Django Form [Django-doc]来验证和清理输入.

Django相关问答推荐

如何在对接合成时创建两个Postgres数据库?

int_list_validator在 Django 表单中不起作用

在 django 中使用自定义 url 转换器传递 url 参数

Django ORM:获取每个类别的月平均价格

Django 过滤器:过滤隐藏在多层模型 struct 中的对象

Django 应用程序似乎无法识别相关名称?

当我告诉它时,如何使用 Django 的记录器来记录回溯?

在 Django 的 TextField 中禁用 HTML 转义

如何在 django 中生成 url

如何在 django 模板中将名称反转为绝对 url?

Django BigInteger自动增量字段作为主键?

如何使用 django 发送 POST 请求?

清理提交的表单数据中的 HTML

更改 Django ModelChoiceField 以显示用户的全名而不是用户名

Django REST Framework - 序列化可选字段

如何 suppress Django 中的弃用警告?

如何获取 pytz 时区的通用名称

django.core.servers.basehttp.FileWrapper 在 Django 1.9 中消失

Django 中的 Python 日志(log)记录

将 AND 和 OR 与 Q 对象组合的 Django 查询过滤器不返回预期结果