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插入排序算法实例分析
Jul 03 Python
python获取局域网占带宽最大3个ip的方法
Jul 09 Python
python 的列表遍历删除实现代码
Apr 12 Python
flask + pymysql操作Mysql数据库的实例
Nov 13 Python
简单谈谈Python的pycurl模块
Apr 07 Python
python 解压pkl文件的方法
Oct 25 Python
python调用自定义函数的实例操作
Jun 26 Python
python求平均数、方差、中位数的例子
Aug 22 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 Python
pygame实现成语填空游戏
Oct 29 Python
python开发前景如何
Jun 11 Python
记一次django内存异常排查及解决方法
Aug 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
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
PHP 开源框架22个简单简介
2009/08/24 PHP
PHP无敌近乎加密方式!
2010/07/17 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
BootStrap中
2016/12/10 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
Vue中通过属性绑定为元素绑定style行内样式的实例代码
2020/04/30 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
基于opencv实现简单画板功能
2020/08/02 Python
详解canvas多边形(蜘蛛图)的画法示例
2018/01/29 HTML / CSS
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
八项规定整改措施
2014/02/12 职场文书
保护地球的标语
2014/06/17 职场文书
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript
Tomcat用户管理的优化配置详解
2022/03/31 Servers
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript