Django Form设置文本框为readonly操作
作者:939397232 发布时间:2023-11-11 03:03:43
用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" >
来源:https://blog.csdn.net/oolocal/article/details/52823403
猜你喜欢
- 从Keras转换成PB模型请注意,如果直接使用Keras2ONNX进行模型转换大概率会出现报错,这里笔者曾经进行过不同的尝试,最后都失败了。
- 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python 自1.5版本起增加了re 模块,它提供 Pe
- import datetime as dtdef log_time(message, time=None): if time i
- 1、python中__name__是什么意思?很多python的初学者可能都会遇到一个问题:__name__是什么意思?在刚开始学习pyth
- 不知道大家在做页面的时候会不会遇到样式定义不生效的问题,基本的表现就是怎么改样式都没显示或只有某些浏览器正常,这时通常需要做下面的几步:确认
- 这篇文章主要介绍了Python插入Elasticsearch操作方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 问题介绍棋盘覆盖问题,是一种编程问题。如何应用分治法求解棋盘覆盖问题呢?分治的技巧在于如何划分棋盘,使划分后的子棋盘的大小相同,并且每个子棋
- 前言至今,ChatGPT 已经火了很多轮,我在第一轮的时候注册了账号,遗憾的是,没有彻头彻尾好好地体验过一次。最近这一次火爆,ChatGPT
- 有时候,我们需要用到 * ,比如在爬虫的时候,但是得到了IP之后,可能不知道怎么验证这些IP是不是有效的,这时候我们可以使用Python携
- 话说这能难倒我吗?赶赶单单~来 ,开搞!一、准备工作用到的软件准备一哈Python 3.8Pycharm 2021.2知识点Python基础
- 前言都说抖音有毒,一刷就停不下来了。看来抖音这款产品紧紧抓住了人们内心深处的某些需求。当然今天不是来探讨抖音这款产品的啊。今天我们来学习如何
- 如下所示:# -*- coding: utf-8 -*-import numpy as npfrom PyQt5.QtCore import
- 条件查询范围查询模糊查询条件查询all()返回全部结果集filter(**kwargs)返回满足参数定义的结果集 例如Entry.objec
- 本文主要通过实例介绍了scrapy框架的使用,分享了两个例子,爬豆瓣文本例程 douban 和图片例程 douban_imgs ,具体如下。
- Python + OpenCV 直接上代码import cv2 import numpy as np from matplotlib imp
- 来蓝色一直都在潜水,很少写帖子,太对不起大家了.下面和大家探讨一个话题,希望能引起大家的兴趣.关于H1,一直都想和大家讨论H1用法的问题,可
- ipython notebook经常被我用作debug的工具。今天调试一段代码,里面用到了argparse这个包来解析命令行参数。但是在ip
- 一、JSP EL语言定义 E L(Expression
- 秉承MVC架构的思想,CI中的所有控制器都需要经过单点入口文件index.php(默认)来加载调用。也就是说,在默认情况下,所有CI开发项目
- 早就想用一个系列的文章来写AJAX,让自己头到尾理一遍,更好的掌握基础知识(昨天的面试受打击了,基础知识很重要).要是写的好,也许也可以帮助