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中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
Jun 23 Python
python机器学习理论与实战(一)K近邻法
Jan 28 Python
Python爬虫工程师面试问题总结
Mar 22 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
Django choices下拉列表绑定实例
Mar 13 Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
Apr 24 Python
mac安装python3后使用pip和pip3的区别说明
Sep 01 Python
python 爬取免费简历模板网站的示例
Sep 27 Python
python3.7.2 tkinter entry框限定输入数字的操作
May 22 Python
4种方法python批量修改替换列表中元素
Apr 07 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
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
php下intval()和(int)转换使用与区别
2008/07/18 PHP
php下删除字符串中HTML标签的函数
2008/08/27 PHP
php 数学运算验证码实现代码
2009/10/11 PHP
php中文繁体和简体相互转换的方法
2015/03/21 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
juqery 学习之四 筛选过滤
2010/11/30 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
jquery中toggle函数交替使用问题
2015/06/22 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
js实现右键菜单功能
2016/11/28 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
python时间整形转标准格式的示例分享
2014/02/14 Python
Linux上使用Python统计每天的键盘输入次数
2019/04/17 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
Python之修改图片像素值的方法
2019/07/03 Python
在django模板中实现超链接配置
2019/08/21 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
Pycharm中切换pytorch的环境和配置的教程详解
2020/03/13 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
家长会主持词
2014/03/26 职场文书