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计算最小优先级队列代码分享
Dec 18 Python
跟老齐学Python之类的细节
Oct 13 Python
Python函数参数类型*、**的区别
Apr 11 Python
python中管道用法入门实例
Jun 04 Python
Python-嵌套列表list的全面解析
Jun 08 Python
Python 序列的方法总结
Oct 18 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
Python 2/3下处理cjk编码的zip文件的方法
Apr 26 Python
Django继承自带user表并重写的例子
Nov 18 Python
简单了解python数组的基本操作
Nov 26 Python
如何实现更换Jupyter Notebook内核Python版本
May 18 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 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
双料怀旧--SHARP GF515的维护、修理和简单调试
2021/03/02 无线电
推荐一款PHP+jQuery制作的列表分页的功能模块
2014/10/14 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
2016/06/05 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
jquery编写日期选择器
2017/03/16 Javascript
安装vue-cli的简易过程
2018/05/22 Javascript
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
Python3.6简单反射操作示例
2018/06/14 Python
Python 3.8 新功能全解
2019/07/25 Python
python openpyxl模块的使用详解
2021/02/25 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
法学毕业生自荐信
2013/11/13 职场文书
致200米运动员广播稿
2014/02/06 职场文书
机械工程师岗位职责
2014/06/16 职场文书
2014年司机工作总结
2014/11/21 职场文书
2014年党风廉政工作总结
2014/12/03 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
环卫处个人工作总结
2015/03/04 职场文书
你会写请假条吗?
2019/06/26 职场文书
Python 中random 库的详细使用
2021/06/03 Python
Python面向对象编程之类的概念
2021/11/01 Python
Apache Pulsar结合Hudi构建Lakehouse方案分析
2022/03/31 Servers