【问题标题】:How do I get the values of all selected checkboxes in a Django request.POST?如何获取 Django request.POST 中所有选中复选框的值?
【发布时间】:2011-01-25 21:42:36
【问题描述】:

您好,我有一系列复选框,例如

<input type="checkbox" name="checks[]" value="1" />
<input type="checkbox" name="checks[]" value="2" />
<input type="checkbox" name="checks[]" value="3" />
<input type="checkbox" name="checks[]" value="4" />

如果选择了多个,我如何在 view.py 中访问这些?

我试过了

request.POST['checks']

但这只是给了我最后一个值。我想要的是列表中已选择的所有内容,例如1,3,4

谢谢

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    试试这个:

    some_var = request.POST.getlist('checks')
    

    some_var 将包含 [1,3,4](那些被检查的值)

    【讨论】:

      【解决方案2】:

      这将解决您的问题,

      some_var = request.POST.getlist('checks[]')
      

      如果你写some_var = request.POST.getlist('checks')可能无法正常工作。

      【讨论】:

      • 这是 Django 1.8+ 所需的方式(我不确定早期版本或 OP 当时使用的版本)。
      • 您的意思是getlist('checks', [])?如果是这样,至少在version 1.10 中,不需要括号。 getlist 将默认返回一个空列表,用于丢失键。
      【解决方案3】:

      这是可行的:

      <input type="checkbox" name="checks[]" value="1" />
      <input type="checkbox" name="checks[]" value="2" />
      <input type="checkbox" name="checks[]" value="3" />
      <input type="checkbox" name="checks[]" value="4" />
      

      views.py

      some_var = request.POST.getlist('checks[]')
      

      【讨论】:

        猜你喜欢
        • 2018-04-25
        • 1970-01-01
        • 2017-04-03
        • 1970-01-01
        • 2013-01-06
        • 2016-03-17
        • 1970-01-01
        • 2011-05-27
        • 1970-01-01
        相关资源
        最近更新 更多