我的表单有2个输入,但名称相同banana
。
但是每一行对于fruit.number都有不同的值。
Django模板
{% for fruit in response %}
<tr>
<td>{{ fruit.number }}</td>
<td>
<select name="banana" class="update_input">
<option selected="selected">yes</option>
<option value="false">no</option>
</select>
</td>
{% endfor %}
<input type="submit" value="Submit" class="btn" style="color:black;">
</form>
当我发布POST时,我发布了两次香蕉值。但我需要根据fruit.number
区分这些值。
我有什么选择。从我可以看到的主要选项是将水果编号添加到选择的名称,即
<select name="1_banana" class="update_input">
<option value="true" selected="selected">yes</option>
<option value="false">no</option>
</select>
是否有像{1 : {"banana":"false"}}
这样的嵌套POST?
希望这一切都有道理:)
谢谢,
答案 0 :(得分:0)
您只有选项ID才能将{{ fruit.number }}
附加到您的选择名称:
{% for fruit in response %}
<tr>
<td>{{ fruit.number }}</td>
<td>
<select name="banana_{{ fruit.number }}" class="update_input">
<option value="true" selected="selected">yes</option>
<option value="false">no</option>
</select>
</td>
</tr>
{% endfor %}
/*
POST:
[
'banana_1': 'true',
'banana_2': 'false'
]
*/
注意:
value
属性选项</tr>
(只是一个通知,可能是一个错字)有一个选项允许您为同一个名称设置多个值:
<select name="banana[]" class="update_input">
不幸的是,除非您在代码中区分它们,否则您无法区分两个水果值:
{% for fruit in response %}
<tr>
<td>{{ fruit.number }}</td>
<td>
<select name="banana[]" class="update_input">
<option value="{{ fruit.number }}_true" selected="selected">yes</option>
<option value="{{ fruit.number }}_false">no</option>
</select>
</td>
</tr>
{% endfor %}
/*
POST:
[
'banana': [ '1_true, '2_false' ]
]
*/