django 表单html5,我们如何在django管理表单中添加动态html5数据属性
你继承Django的ModelChoiceField并修改它的render_options()和render_option()方法来显示你所需要的对象的属性。我想你也需要你自己的ModelChoiceIterator的子类,这样它不仅可以吐出id/label元组,而且可以分离出你需要的所有数据。
例
我只是找到了一个自定义的SelectWidget的实施OpenStack's dashboard:
class SelectWidget(widgets.Select):
"""
Customizable select widget, that allows to render
data-xxx attributes from choices.
.. attribute:: data_attrs
Specifies object properties to serialize as
data-xxx attribute. If passed ('id',),
this will be rendered as:
option_value
where 123 is the value of choice_value.id
.. attribute:: transform
A callable used to render the display value
from the option object.
"""
def __init__(self, attrs=None, choices=(), data_attrs=(), transform=None):
self.data_attrs = data_attrs
self.transform = transform
super(SelectWidget, self).__init__(attrs, choices)
def render_option(self, selected_choices, option_value, option_label):
option_value = force_unicode(option_value)
other_html = (option_value in selected_choices) and \
u' selected="selected"' or ''
if not isinstance(option_label, (basestring, Promise)):
for data_attr in self.data_attrs:
data_value = html.conditional_escape(
force_unicode(getattr(option_label,
data_attr, "")))
other_html += ' data-%s="%s"' % (data_attr, data_value)
if self.transform:
option_label = self.transform(option_label)
return u'%s' % (
html.escape(option_value), other_html,
html.conditional_escape(force_unicode(option_label)))
编辑
只要你提供这样的选择,它应该工作:
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'dummy':
widget = SelectWidget(data_attrs=('bar',))
choices = [(foo.id, foo) for foo in Foo.objects.all()]
form_field = forms.ChoiceField(
choices=choices, widget=widget)
return form_field
return super().formfield_for_foreignkey(db_field, request, **kwargs)
django 表单html5,我们如何在django管理表单中添加动态html5数据属性相关推荐
- html表单颜色选择器,如何在Django管理中使用HTML5颜色选择器
我试图在Django的管理页面中实现HTML5 colorpicker. 这是我的模型:#model.py ... class Category(models.Model): ... color = ...
- Django表单类forms与模型关联以及表单验证
前言 这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题 于是乎,我自己开发了一款面试宝典,希 ...
- HTML中的form表单的标签、属性、属性值; CSS以及HTML5新增属性、属性值
form表单HTML5.CSS3标签及属性.属性值 form表单HTML标签.属性.属性值: (单行文本输入框) (密码输入框) (单选框) (多选框) (提交按钮) (重置按钮) 或者按钮(空按钮) ...
- html表单验证案例,HTML5表单验证(4个实用的表单美化案例)
multipart/form-data 在使用包含文件上传控件的表单时,必须使用 autocomplete="on" 自动补全功能 novalidate 不验证 placehold ...
- ajax 表单提交传文件,Ajax提交Form表单及文件上传
刚刚申请下来的博客,写得第一篇.有点小激动,本人以前是一名工业3D设计师突然有些变故做上了JavaWeb开发: 前几天,发现了一些小问题.我在写后台管理页面时,需要上传一张图片.于是我就用很普通的Fo ...
- jquery表单ajax json数据,jquery序列化form表单使用ajax提交后处理返回的json数据
1.返回json字符串: /** 将一个字符串输出到浏览器 */ protected void writeJson(String json) { PrintWriter pw = null; try ...
- layuiajax提交表单控制层代码_Ninja Forms:免费的联系表单插件,却提供了付费表单才有的功能【视频+图文】...
Ninja Forms不仅能够可视化创作询盘表单,还能记录询盘.添加隐藏字段.添加反垃圾验证.提交表单时可设置多个动作,这在Wpforms插件中可都是付费功能,同时,Ninja Form激活安装量一百 ...
- python开源报表系统_流程设计器、表单设计器和简单报表管理开源OA系统smart-web...
smart-web2是一套相对简单的OA系统:包含了流程设计器,表单设计器,权限管理,简单报表管理等功能: 系统后端基于SpringMVC+Spring+Hibernate框架,前端页面采用JQuer ...
- java表单自动绑定数据_java工作流系统表单自动 获取数据
关键词:工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 bpm工作流系统 java工作流主流框架 自定义工作流引擎 表单设计器 流程设计器 什么是数据自动获 ...
最新文章
- 在windows程序中嵌入Lua脚本引擎--编写自己的Lua库
- windows azure之创建虚拟机
- Gstreamer基础知识介绍
- linux-文件类型-七种
- c++学习笔记---指针
- drools规则引擎源码解析
- MATLAB通过两点画三维直线(plot3)
- 0x68111002_黑苹果10.12.2驱动R9 270显卡成功一例
- ajax返回String类型导致的flowplayer报错p.replace is not a function问题
- 二手房房源信息数据分析项目完整流程
- pands 画图 调整大小_关于数学建模的画图学习建议
- vue引入腾讯地图,去除水印
- python mk趋势检验_时序数据常用趋势检测方法
- 【历史上的今天】11 月 16 日:RISC-V 领导者出生;微软发布 Windows CE;电子管问世
- 01-空投Lynda
- 键盘怎么锁定计算机,电脑键盘锁住了怎么解锁 详细方法介绍
- python echarts城市热力图_ECharts-热力图实例
- arduino中 #define、const和int 的差别
- OpenHarmony学习笔记——I2C驱动0.96OLED屏幕
- 郑大计算机专业英语第11章在线测试,郑大远程教育大学英语I 1-10章测试题
热门文章
- Jenkins 与 Kubernetes 的 CI 与 CD Git + Maven + Docker+Kubectl
- 基于Python的开源人脸识别库,离线识别率高达99.38%
- 不间断电源ups标准_UPS不间断电源正确使用方法
- python property作用_python中@property的作用和getter setter的解释
- XM7 FOR ANDROID,视频剪辑制作app-视频剪辑制作xm8.0安卓版-蜻蜓手游网
- IE或Chrome浏览器玩Xbox游戏能实现吗
- win7电脑假死机怎么办
- 关于提高网页加载速度个人学习以及经验总结
- mysql partition 性能_通过分区(Partition)提升MySQL性能
- js二维数组传递java,ActiveX获取JavaScript传递的二维数组