multiple类型的select option在django后台如何取值
之前前端的select都是单选类型,在新的场景中允许用户选择多个条件,

前端的代码如下:
<form action="{% url 'info:result-list' %}" method="get">
<div class="inner">
<div class="column-item">
<div class="form-group">
<select name="destination" class="select2-multi form-control"
data-placeholder="选择一个目的地" multiple>
<option value="">选择一个目的地</option>
<option value="0">任意地点</option>
{% for end_locale in end_locales %}
<option value="{{ end_locale }}">{{ end_locale }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="column-item">
<div class="form-group">
<select name="month" class="select2-multi form-control"
data-placeholder="选择你的出发月份" multiple>
<option value="">选择你的出发月份</option>
<option value="0">任意月份</option>
<option value="1">1 月</option>
<option value="2">2 月</option>
<option value="3">3 月</option>
<option value="4">4 月</option>
<option value="5">5 月</option>
<option value="6">6 月</option>
<option value="7">7 月</option>
<option value="8">8 月</option>
<option value="9">9 月</option>
<option value="10">10 月</option>
<option value="11">11 月</option>
<option value="12">12 月</option>
</select>
</div>
</div>
<div class="column-item">
<div class="form-group">
<select name="year" class="select2-multi form-control"
data-placeholder="选择你的出发年份" multiple>
<option value="">选择你的出发年份</option>
<option value="0">任意年份</option>
{% for year in years %}
<option value="{{ year }}">{{ year }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="column-item for-btn">
<div class="form-group">
<input type="submit" class="btn btn-primary btn-block" value="搜一下">
</div>
</div>
</div>
</form>
搜索按钮被点击时,携带select option信息到后台,url如下: http://xxxxxx.com/info/result-list/?destination=%E5%8C%97%E4%BA%AC&destination=%E8%A5%BF%E5%AE%89&destination=%E6%B7%B1%E5%9C%B3&month=1&month=2&month=3&year=2019
按照之前的逻辑,在django中,通过request.GET.get('destination',None)获取值,我们希望获取到全部目的地: 
但是事实上我拿到的只有深圳:

奇怪,这是为什么呢?
debug模式看一下:

可以看到destination的值都放在一个列表中,用get只能取到字符串,取value应该用getlist才对

get和getlist区别:
get() : 根据键获取值 如果一个键同时拥有多个值将获取最后一个值 如果键不存在则返回None值,可以设置默认值进行后续处理
getlist():根据键获取值 返回值为list类型 可以获取指定键的所有值 如果键不存在则返回空列表[] 可以设置默认值进行后续处理
multiple类型的select option在django后台如何取值的更多相关文章
- 思路:controller层:后台如何取值 前端如何给name赋值 例如是id赋值还是自己随意定义
思路:controller层:后台如何取值 前端如何给name赋值 例如是id赋值还是自己随意定义
- bootstrap select 多选的用法,取值和赋值(取消默认选择第一个的对勾)
h5自带的select标签可以实现按住ctrl键多选的功能,但是样式及其难看. bootstrap select是很好用的前端插件 首先引入bootstrap和bootstrap-select的c ...
- js从后台无法取值问题
前台代码 <script type="text/javascript"> $(function () { var chart; $(document).ready(fu ...
- ASP.NET中多个相同name的控件在后台正确取值
有兽, 页面上可能有多个相同name的Html表单控件, 一般在后台使用Request.Form[“name”]取值,并用‘,’分隔. 但是当值中包含逗号时, 取值就会出现异常, ...
- 关于ligerform中select与text的赋值与取值
如有下ligerform表单: var formData = [ { display: "区域", name: "QYYJ", newline: true, l ...
- TextBox只读时不能通过后台赋值取值解决办法
给页面的TextBox设置ReadOnly="True"时,在后台代码中不能赋值取值,下边几种方法可以避免: 1.不设置ReadOnly,设置onfocus=this.blur( ...
- (转)C# TextBox ReadOnly / Enabled 时,后台无法取值问题
当页面上的某个TextBox 设置了属性ReadOnly = "True" 或 Enabled = "False" 时,在客户端为其赋值后,在后台代码中却无法获 ...
- ASP.Net TextBox只读时不能通过后台赋值取值
给页面的TextBox设置ReadOnly="True"时,在后台代码中不能赋值取值,下边几种方法可以避免: 1.不设置ReadOnly,设置onfocus=this.blur() ...
- C# 与数据库中字段类型 Int16(short), Int32(int), Int64(long)的取值范围、区别 。string长度
一开始看到Int16, Int32, Int64这三种类型就觉得有点怪, 为什么要整个数字结尾的, 挺怪的. 昨天互相想到, ms这么干就是想让大家一眼就知道这个数据类型占多大空间吧. Int8, 等 ...
随机推荐
- 实验一 绘制任意斜率的直线段 | 使用VS2017工具
这世界上有很多坑,注定有些坑是要填的.下面我就用VS2017使用MFC对这个课堂实验进行填坑. 一.实验目的 (1)掌握任意斜率直线段的重点 Bresenham 扫描转换算法: (2)掌握 Cline ...
- golang 中国代理
vim /etc/profile export GO11MODULE=onexport GO111MODULE=onexport GOPROXY=https://goproxy.io source / ...
- 指定JSON.toJSONString中实体类属性的输出顺序
最近在使用JSON.toJSONString过程中出现实体类的属性与转换之前的顺序不一致 public static void main(String[] args) { Person person ...
- Neither BindingResult nor plain target object for bean name 'command' available as request attribute
最近用JSR303在表单提交时使用Java Bean Validation验证数据.报错堆栈如下: java.lang.IllegalStateException: Neither BindingRe ...
- c语言实行泛型hashmap
代码出处:A simple string hashmap in C https://github.com/petewarden/c_hashmap main.c (main2是官方源代码,main是 ...
- Spring Cloud(3):配置服务(Config)
Spring Cloud Config的目标是在在大量的微服务中,将服务配置信息和和服务的实际物理部署分离,且服务配置服务不应与服务实例一起部署.配置信息应该作为环境变量传递给正在启动的服务,或者在服 ...
- 文件上传and富文本页面
文件上传功能: 1.首先在index.jsp的界面上初始化一个表单. <body> <form enctype="multipart/form-data" act ...
- Java虚拟机new对象
类加载检查java虚拟机在遇到一条 new 指令时,首先会检查是否能在常量池中定位到这个类的符号引用,并且是否已被加载过.解析和初始化过.如果没有,那必须先执行类加载过程 类加载的相关知识可参考:JV ...
- 解读GitHub EntityComponentSystemSamples
出自Unity官方的ECS项目示例,该项目的第一次Commit是在2018年3月20号,距离现在一年半的时间,这期间ECS本身的生态在快速发展,稳定性也是逐步提升,期待在2020年的Unity版本中作 ...
- DP经典问题—————(LCIS)最长公共上升子序列
这道题是LIS(最长上升子序列)与LCS(最长公共子序列)问题的综合版本,有关这两个问题可以看一下我的文章:https://www.cnblogs.com/myhnb/p/11305551.html ...