在Django表单发布请求中访问单选/复选框按钮选择

时间:2018-07-09 04:44:28

标签: python django checkbox webforms radio-button

我在Django中有一个网页表单。我的网页上有一些单选按钮。用户选择单选按钮并提交后,我需要知道我的视图中选择了哪个单选按钮。 我尝试使用以下代码: HTML模板:

<form action= "{% url 'rec:opt' %}" method="post">
    {% csrf_token %}
    {%  for name in features %}
    <tr>
        <td>{{ name }}</td>
        <td>

            <input type="checkbox" name="is_obj" id={{ name }} + "_is_obj" > <br>
        </td>
        <td>
            Lower Limit <input type="text" name="ll" id={{ name }} + "_ll">
            Upper Limit <input type="text" name="ul" id={{ name }} + "_ul">
        </td>
    </tr>
    {% endfor %}
    <input type="submit" value="Submit" />
</form>

View.py

def opt(request):
    print(request.POST['is_obj']) #'on'

request.POST仅返回“ on”,没有说明选中了哪个单选/复选框。 同样,getlist返回以下内容

request.POST.getlist['is_obj'] # ['on']

1 个答案:

答案 0 :(得分:2)

您需要将value属性添加到您的复选框:

<input type="checkbox" name="is_obj" id={{ name }} + "_is_obj" value="{{ name|add:'_is_obj' }}">

如果省略了value属性,则该复选框的默认值为on

请注意,您可以使用add过滤器进行字符串合并。但是请注意,可以强制转换为整数的字符串将被求和,而不是连接在一起。