Django表单提交后,如何获取相同name的不同value值

来源:互联网 发布:成都软件 编辑:程序博客网 时间:2024/04/30 16:22


i前端:nput_test.html

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>Search</title>    <script>    </script></head><body>    <div><p>{{ result }}</p></div>    <form action="" method="post">{% csrf_token %}        <input type="text" name="key">        <input type="text" name="key">        <input type="submit" value="Search" >    </form></body></html>

两个<input >标签name都是'key'


后台:Django views.py

def setting(request):    if request.method == 'POST':        result_list = request.POST.getlist('key', '')        result = str(result_list)        return render_to_response('input_test.html', locals(), context_instance=RequestContext(request))    else:        return render_to_response('input_test.html', locals(), context_instance=RequestContext(request))


运行后,在浏览器表单中输入:

打开chrome ,提交表单,看FormData,其实浏览器已经向后台提交了两个name 为'key '的值。


后台也成功接收到一个列表 ['1', '2']

主要是这个API request.POST.getlist(),可以接收到所有共享同一个name的value,
QueryDict.getlist(key, default)¶    Returns the data with the requested key, as a Python list. Returns an empty list if the key doesn’t exist and no default value was provided. It’s guaranteed to return a list of some sort unless the default value was no list.

参考:http://stackoverflow.com/questions/14348321/getting-distinct-values-from-inputs-that-share-the-same-name

0 0