重写radioselect类自定义个性化单选框
网页中常常会有单选项的表单,使用django原生的radioselect控件实现前端渲染和后端处理还是很方便的,但是原生 radioselect控制的样式有时不能完全满足需求。比如,图1所示的数据表中有一个颜色的单选项,用户在创建项目需要用这个选项标示项目显示的色彩。
图1
用原生的 radioselect控件可以这样,在数据表样式设置的modelform类的widgets下直接调用radioselect模块,如图2中红线所示的那样。
图2
使用原生 radioselect显示的单选项的结果如图3所示:
图3
如果单项的值是文字,这个效果勉强还能用,但本例单选项的数值是色彩的值,用文字显示就不直观了,把字符换成色彩不仅直观,而且界面也美观一些,于是决定定制一个直接显示选项中色彩的个性化radioselect控件来取代原生的。
具体的思路循着原生radioselect控件实现路线,再加一些自定义组件最终实现色彩直选的目的。那么先看看原生的radioselect的路线,图4就是原生模块的代码。
图4
从图4中可以看出,这个模块引用了两个html文件,这两个文件引用了什么也是需要搞清楚的,于是在项目的虚拟环境下找到widgets文件夹,如图5。
图5
这