Django的Form另类实现SelectMultiple
昨天花了一天才解决,遇到的问题如下:
在forms.py里有一个如下的字段:
jira_issue = forms.CharField(
required=False,
label=u"Jira问题",
widget=forms.SelectMultiple(
attrs={
'class': 'form-control col-md-7',
'class': 'select2_single form-control',
'data-placeholder': 'jira问题',
'style': 'width:300px; ',
'multiple': "multiple",
}
),
)
因为widget表现为SelectMultiple,而Field为CharField。所以如果后台能拆到jira_issue,得到的也是会字符串,而不是列表。这明显段位不高。
我也测试过另一种方案,就是将CharField更改为再multichoice这样的字段,但在django里,这样的定义在经过form验证时,要提前写好CHOICE选项。
而这个jira_issue无法提前定义choice。它的值都是即时从jira api里得到的。
那么,这如何是好呢?
两种实现,但后端代码都雷同的。
一,不使用forms.py里的字段,然后,在form_valid里自己额外获取列表。
二,使用formy.py,但这个字段获取到之后,并不使用,在form_valid里自己额外获取列表。
这种思路有点hack,我也想不到其它的东东了。赶进度呢~~~~~~~
class DeployCreateView(FormView):
template_name = 'version/create_deploy.html'
form_class = DeployForm
....
def form_valid(self, form):
jira_issue_list = self.request.POST.getlist('jira_issue')
....
代码中红字是关键,从self的request请求中拿到列表形式的选项。
Django的Form另类实现SelectMultiple的更多相关文章
- Django之Form组件
Django之Form组件 本节内容 基本使用 form中字段和插件 自定义验证规则 动态加载数据到form中 1. 基本使用 django中的Form组件有以下几个功能: 生成HTML标签 验证用户 ...
- 【Django】--Form组件
Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 例子: 1.创建Form类 from djan ...
- Python之路【第二十一篇】:Django之Form组件
Django之Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1. ...
- 第十一篇:web之Django之Form组件
Django之Form组件 Django之Form组件 本节内容 基本使用 form中字段和插件 自定义验证规则 动态加载数据到form中 1. 基本使用 django中的Form组件有以下几个功 ...
- 69、django之Form组件
本篇导航: 小试牛刀 Form类 常用选择插件 自定义验证规则 初始化数据 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次 ...
- Django的Form(二)
上一篇已经简单介绍了Django的Form,现在开始进阶操作了 ..... 创建Form类的时候,主要涉及到Form字段和Form的插件,字段用于做form验证,插件用来生成HTML DjiangoF ...
- python Django之Form组件
python Django之Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试 ...
- Python开发【框架篇】Django的Form组件
Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建Form类 from dja ...
- Django中Form验证
Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 一,Form验证 第一种操作:主要是这三个函数 ...
随机推荐
- Centos7之阿里Arthas部署
阿里Arthas Arthas(阿尔萨斯)是Alibaba开源的一个Java诊断工具,无需做任何配置,就可以直观的获取各种维度的性能数据,方便开发者进行问题的定位和诊断. 应用场景 动态跟踪Java代 ...
- Android最新版本号与API级别对应关系
Android版本号与API级别对应关系表 名称 版本号 API等级 发布时间 BuildVersion 2012-11-01 BuildVersionCodes.JellyBeanMr1 Jell ...
- win7安装 nodejs,npm
1. 下载地址:http://nodejs.org/dist/v9.7.1/ 2. 安装 3. 查看是否安装成功,命令行查询 node -v 4. 默认已经安装了npm,直接查询版本 5. 配置np ...
- (CSDN迁移) jFinal无法启动_JFinalDemoGenerator问题解决办法
Eclipse -> 项目右键 -> Build Path -> Config Build Path -> Source -> Add Folder, 将a_little ...
- mongodb4.2.2 centos 单机安装
下载 rpm包 wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/mongodb-org-server-4. ...
- 【LOJ511】[LibreOJ NOI Round #1]验题(动态DP)
我这道题写了整!整!三!天! 我要一定要写这篇博客来表达我复!杂!的!心!情! 题目 LOJ511 官方题解(这个题解似乎不是很详细,我膜 std 才看懂的) 调这道题验证了我校某人的一句话:调题是一 ...
- 【LEETCODE】68、动态规划,medium级别,题目:95、120、91
package y2019.Algorithm.dynamicprogramming.medium; /** * @ProjectName: cutter-point * @Package: y201 ...
- 记一次奇怪的python多个变量拼接后的字符串丢失事件
在一次脚本运行中出现了多个变量拼接后的值出现丢失情况. a = "hello " b = "ketty" c = a + b + "!" 预 ...
- robotframework_酷我音乐_That Girl
*** Settings *** Library Selenium2Library *** Test Cases *** music # 打开浏览器 Open Browser https://www. ...
- go 程序整个执行过程