如何通过Python代码访问HTML模板中具有多个值的复选框?

0 投票
2 回答
1019 浏览
提问于 2025-04-17 19:28

我刚开始学习 pythondjango

这是我在 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列表。

撰写回答