Django Form设置文本框为readonly操作


Posted in Python onJuly 03, 2020

用Django开发网站的时候,前端页面内的文本框总是不能被设置为只读,找了一些资料发现可以在form class里面进行设置。

方法一:

首先在自己创建的form.py文件中创建一个my_info_form 类:

** In form.py file **

""" 1. 利用Django form创建自己需要的表单 """
class my_info_form(forms.Form):
 user_id = forms.IntegerField()
 user_name = forms.CharField(max_length=254)
 email = forms.EmailField()

""" 上面的这一小段代码就可以在页面上显示出一个表格, 但是表格里面的文本框IntegerField, CharField, EmailField都处于可编辑状态。 
大多数情况下我们不想要用户可以随意更改页面展示的内容,所以需要对这些文本框进行设置来改变可编辑状态。
代码如下: """

 def __init__(self, *args, **kwargs):
 super(forms.Form, self).__init__(*args,**kwargs)
 self.fields['user_id'].widget.attrs['readonly'] = True
 self.fields['user_name'].widget.attrs['readonly'] = True
 self.fields['email'].widget.attrs['readonly'] = True

""" 编写__init__()方法,
首先, 要调用super(forms.Form, self).__init__(*args,**kwargs), 注意这里的__init__()方法里没有self。*args会传递要展示的信息, **kwargs会传递改变文本框格式的信息。 如果不调用super方法, 会报no fields 错误。

第二, 更改文本框编辑状态:

self.fields['user_id'].widget.attrs['readonly'] = True
self.fields['user_name'].widget.attrs['readonly'] = True
self.fields['email'].widget.attrs['readonly'] = True

第三, 试着运行一下, 你会发现文本框已经不能进行编辑了!
"""

方法二:

""" 
在创建文本框的时候实用Django的widget 设置文本框的属性为 readonly
"""
class my_info_form(forms.Form):
 user_id = forms.IntegerField(widget=forms.TextInput(attrs={'readonly': 'readonly'}))
 user_name = forms.CharField(widget=forms.TextInput(attrs={'readonly': 'readonly'}))
 email = forms.EmailField(widget=forms.TextInput(attrs={'readonly': 'readonly'}))

补充知识:将input标签设置为不可编辑状态的三种方法

一:disabled

disabled 属性规定应该禁用 input 元素,被禁用的 input 元素,不可编辑,不可复制,不可选择,不能接收焦点,后台也不会接收到传值。设置后文字的颜色会变成灰色。disabled 属性无法与 <input type="hidden"> 一起使用。

示例:

<input type="text" disabled="disabled" />

二:readonly

readonly 属性规定输入字段为只读可复制,但是,用户可以使用Tab键切换到该字段,可选择,可以接收焦点,还可以选中或拷贝其文本。后台会接收到传值. readonly 属性可以防止用户对值进行修改。readonly 属性可与 <input type="text"> 或 <input type="password"> 配合使用。

示例:

<input type="text" readonly="readonly">

三:readonly unselectable="on"

readonly unselectable="on" 该属性跟disable类似,input 元素,不可编辑,不可复制,不可选择,不能接收焦点,设置后文字的颜色也会变成灰色,但是后台可以接收到传值。

示例:

<input type="text" readonly unselectable="on" >

以上这篇Django Form设置文本框为readonly操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python文件比较示例分享
Jan 10 Python
Python线程的两种编程方式
Apr 14 Python
Python中pip安装非PyPI官网第三方库的方法
Jun 02 Python
Python使用bs4获取58同城城市分类的方法
Jul 08 Python
100行Python代码实现自动抢火车票(附源码)
Jan 11 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
python中调试或排错的五种方法示例
Sep 12 Python
Cython编译python为so 代码加密示例
Dec 23 Python
基于Tensorflow使用CPU而不用GPU问题的解决
Feb 07 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
浅谈Django前端后端值传递问题
Jul 15 Python
如何使用flask将模型部署为服务
May 13 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
Jul 03 #Python
Keras 在fit_generator训练方式中加入图像random_crop操作
Jul 03 #Python
keras的三种模型实现与区别说明
Jul 03 #Python
Keras中 ImageDataGenerator函数的参数用法
Jul 03 #Python
python程序如何进行保存
Jul 03 #Python
keras的ImageDataGenerator和flow()的用法说明
Jul 03 #Python
python如何安装下载后的模块
Jul 03 #Python
You might like
星际流派综述
2020/03/04 星际争霸
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
javascript脚本调试方法小结
2008/11/24 Javascript
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
基于JavaScript实现一个简单的Vue
2018/09/26 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
[59:42]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
TensorFlow saver指定变量的存取
2018/03/10 Python
Python数据结构之图的应用示例
2018/05/11 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
python通过实例讲解反射机制
2019/10/17 Python
Python 根据数据模板创建shapefile的实现
2019/11/26 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
高三毕业典礼主持词
2014/03/27 职场文书
一文读懂go中semaphore(信号量)源码
2021/04/03 Golang
详解JS ES6编码规范
2021/05/07 Javascript