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写xml文件的操作实例
Oct 05 Python
Python 3.x 新特性及10大变化
Jun 12 Python
使用Python写个小监控
Jan 27 Python
python之virtualenv的简单使用方法(必看篇)
Nov 25 Python
python实现用户答题功能
Jan 17 Python
python实现文件的备份流程详解
Jun 18 Python
使用pandas读取文件的实现
Jul 31 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
Nov 29 Python
Python 获取命令行参数内容及参数个数的实例
Dec 20 Python
python在不同条件下的输入与输出
Feb 13 Python
numpy矩阵数值太多不能全部显示的解决
May 14 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 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
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
php中smarty实现多模版网站的方法
2015/06/11 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
JavaScript DOM操作表格及样式
2015/04/13 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
Webpack优化配置缩小文件搜索范围
2017/12/25 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
Python随机生成带特殊字符的密码
2016/03/02 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
django queryset相加和筛选教程
2020/05/18 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
学生个人的自我评价分享
2013/11/05 职场文书
留学推荐信中文范文三篇
2014/01/25 职场文书
技能比赛获奖感言
2014/02/14 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
护士节策划方案
2014/05/19 职场文书
保护环境的标语
2014/06/09 职场文书
房地产营销活动策划方案
2014/09/15 职场文书
利用Python实现Picgo图床工具
2021/11/23 Python