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 拆包可迭代数据如tuple, list
Dec 29 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
浅谈pandas中shift和diff函数关系
Apr 08 Python
Python SVM(支持向量机)实现方法完整示例
Jun 19 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
python实现简易淘宝购物
Nov 22 Python
通过 Python 和 OpenCV 实现目标数量监控
Jan 05 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
Dec 07 Python
Python+Xlwings 删除Excel的行和列
Dec 19 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
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
常用一些Javascript判断函数
2012/08/14 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
python开发中module模块用法实例分析
2015/11/12 Python
浅谈python写入大量文件的问题
2018/11/09 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
python随机数分布random均匀分布实例
2019/11/27 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
CSS3制作苹果风格键盘特效
2015/02/26 HTML / CSS
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
override和overload的区别
2016/03/09 面试题
经销商培训邀请函
2014/01/21 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
同意报考公务员证明
2015/06/17 职场文书
大学副班长竞选稿
2015/11/21 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题