如何通过Python代码访问HTML模板中具有多个值的复选框?
我刚开始学习 python
和 django
。
这是我在 html
模板中的内容:
<input type ="checkbox" value={{ item.id }} name="ck1[]">
在 views.py 文件里,当我写 checked = request.POST.get(['ck1'])
时,出现了“不可哈希的列表”错误。请帮我解决这个问题。
2 个回答
1
请不要在写Django的时候使用PHP的语法。name="ck1[]"
这种写法是PHP特有的,完全没必要。
如果你想让这个字段叫做ck1
,只需要用name="ck1"
,然后在你的视图中使用`request.POST.getlist('ck1')`来获取数据。
如果你真的非要使用那种让人头疼的括号语法,那么你需要用request.POST.getlist('ck1[]')
,因为Django很合理地认为你在HTML中使用的名字就是你在POST数据中应该得到的名字。
0
如果你想在Django的视图中从HTML获取一个数组,你需要使用
checked = request.POST.getlist('ck1[]')
或者
checked = request.POST.getlist('ck1')
这个getlist方法会把所有选中的值转换成一个Python列表。