我正在尝试在简单的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'))
答案 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
属性,否则浏览器不会发送任何数据。