我有一个带有下拉菜单的django表单
<form action="/dir/" method="POST">{% csrf_token %}
<table>
<tr><td>
<select name="listxblocks">
{% for scname, desc in scenarios %}
<!--<option value="{% url "workbench_show_scenario" scname %}">{{desc}}/{{scname}}</option>-->
<option value="{{scname}}">{{desc}}/{{scname}}</option>
{% endfor %}
</select>
</td>
<td></td></tr>
</table>
<input type="submit" value="Save"/>
</form>
我目前在提交表单时传递了一个值 scname ,我需要传递两个值 scname 和 desc 并稍后访问它们
如何发送这两个值
答案 0 :(得分:1)
希望它能奏效。您可以从JSON
传递option
字符串,并在django视图中将json string
转换为json object
<option value="{'desc': {{desc}}, 'scname': {{scname}} }">{{desc}}/{{scname}}</option>
然后在你的Django视图函数
中import json
blocks = json.loads(request.POST.get('listxblocks'))
desc = blocks['desc']
scname = blocks['scname']
答案 1 :(得分:1)
当我需要解压缩两个值时,我用已知的分隔符写两个:
<option name value="{{desc}}#{{scname}}">{{desc}}/{{scname}}</option>
然后在你的观点中:
foo = request.POST.get('listxblocks').split('#')
desc = foo[0]
scname = foo[1]
答案 2 :(得分:0)
如果需要更简单的形式,也可以使用json数组:
<option value='[ "{{desc}}", "{{scname}}" ]'>{{desc}}/{{scname}}</option>
这将被序列化为Python列表:
my_list = json.loads(request.POST.get('option'))
print(my_list[0])
print(my_list[1])