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 28 Python
python中字符串数组逆序排列方法总结
Jun 23 Python
使用Python和Scribus创建一个RGB立方体的方法
Jul 17 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
Aug 02 Python
python代码实现逻辑回归logistic原理
Aug 07 Python
对django2.0 关联表的必填on_delete参数的含义解析
Aug 09 Python
Python类的动态绑定实现原理
Mar 21 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
什么是Python包的循环导入
Sep 08 Python
python实现xml转json文件的示例代码
Dec 30 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
Feb 22 Python
python中出现invalid syntax报错的几种原因分析
Feb 12 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
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
PHP中的替代语法简介
2014/08/22 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
[01:12]DOTA2 2015年秋季互动指南
2015/11/10 DOTA
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python中使用item()方法遍历字典的例子
2014/08/26 Python
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
优秀的毕业生的自我评价
2013/12/12 职场文书
服装设计行业个人的自我评价
2013/12/20 职场文书
出生医学证明样本
2014/01/17 职场文书
中药专业自荐信范文
2014/03/18 职场文书
公司年底活动方案
2014/08/17 职场文书
教师学习三严三实心得体会
2014/10/13 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
vue实现同时设置多个倒计时
2021/05/20 Vue.js
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python