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 编码处理-str与Unicode的区别
Sep 06 Python
基于Python的文件类型和字符串详解
Dec 21 Python
python web.py开发httpserver解决跨域问题实例解析
Feb 12 Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 Python
Django 配置多站点多域名的实现步骤
May 17 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
python开头的coding设置方法
Aug 08 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
Python 合并拼接字符串的方法
Jul 28 Python
python wsgiref源码解析
Feb 06 Python
Python语言规范之Pylint的详细用法
Jun 24 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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
PHP 输出简单动态WAP页面
2009/06/09 PHP
php性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
php清除和销毁session的方法分析
2015/03/19 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
2013/04/23 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
pygame实现非图片按钮效果
2019/10/29 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
Dodax奥地利:音乐、电影、书籍、玩具、电子产品等
2019/08/31 全球购物
公司门卫岗位职责
2014/03/15 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python