我在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']
答案 0 :(得分:2)
您需要将value
属性添加到您的复选框:
<input type="checkbox" name="is_obj" id={{ name }} + "_is_obj" value="{{ name|add:'_is_obj' }}">
如果省略了value属性,则该复选框的默认值为on
。
请注意,您可以使用add
过滤器进行字符串合并。但是请注意,可以强制转换为整数的字符串将被求和,而不是连接在一起。