如何在django应用程序中获取复选框值

时间:2018-02-11 19:48:34

标签: python django twitter-bootstrap python-3.x bootstrap-4

我正在尝试在简单的django应用程序中使用复选框控件。代码逻辑似乎很好,但我得到一个空的fruit列表([None, None])。我不知道为什么它不能正常工作,任何人都可以指出错误。提前致谢

的index.html

<div class="form-check">
<input class="form-check-input" type="checkbox" value="Apple" id="apple">
<label class="form-check-label" for="apple">Apple</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="Mango" id="mango">
<label class="form-check-label" for="mango">Mango</label>
</div> 

view.py

if request.method == 'POST':
    fruit = []
    fruit.append(request.POST.get('apple'))
    fruit.append(request.POST.get('mango'))

2 个答案:

答案 0 :(得分:3)

正如Daniel所说,你必须为表单元素添加name属性,以便将它们提交给服务器。

<强>的index.html

<form method="post">
  {% csrf_token %}
  <div class="form-check">
    <input class="form-check-input" type="checkbox" value="Apple" id="apple" name="fruits">
    <label class="form-check-label" for="apple">Apple</label>
  </div>
  <div class="form-check">
    <input class="form-check-input" type="checkbox" value="Mango" id="mango" name="fruits">
    <label class="form-check-label" for="mango">Mango</label>
  </div>
  <button type="submit">Submit</button>
</form>

这样,您可以在视图中获得水果列表:

<强> views.py

if request.method == 'POST':
    fruits = request.POST.getlist('fruits')

fruits变量将是检查输入的列表。例如:

['Apple', 'Mango']

答案 1 :(得分:1)

input个元素需要name属性,否则浏览器不会发送任何数据。