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 RPC服务器端和客户端实例
Nov 22 Python
推荐11个实用Python库
Jan 23 Python
python交互式图形编程实例(三)
Nov 17 Python
python读取视频流提取视频帧的两种方法
Oct 22 Python
python opencv旋转图像(保持图像不被裁减)
Jul 26 Python
pandas实现将dataframe满足某一条件的值选出
Jun 12 Python
Django 反向生成url实例详解
Jul 30 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
将自己的数据集制作成TFRecord格式教程
Feb 17 Python
Python 使用office365邮箱的示例
Oct 29 Python
python SOCKET编程基础入门
Feb 27 Python
pandas提升计算效率的一些方法汇总
May 30 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 flv视频时间获取函数
2010/06/29 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
2014/08/22 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
twig里使用js变量的方法
2016/02/05 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
js最简单的拖拽效果实现代码
2010/09/24 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
JavaSript中变量的作用域闭包的深入理解
2014/05/12 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
[01:46]新英雄登场
2019/09/10 DOTA
200行自定义python异步非阻塞Web框架
2017/03/15 Python
Python守护线程用法实例
2017/06/23 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
python批量爬取下载抖音视频
2019/06/17 Python
django框架使用方法详解
2019/07/18 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
keras 多gpu并行运行案例
2020/06/10 Python
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
物流司机岗位职责
2013/12/28 职场文书
编辑找工作求职信分享
2014/01/03 职场文书
个人自我鉴定总结
2014/03/25 职场文书
书香家庭事迹材料
2014/05/09 职场文书
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server