Django Form設(shè)置文本框?yàn)閞eadonly操作
用Django開發(fā)網(wǎng)站的時(shí)候,前端頁面內(nèi)的文本框總是不能被設(shè)置為只讀,找了一些資料發(fā)現(xiàn)可以在form class里面進(jìn)行設(shè)置。
方法一:
首先在自己創(chuàng)建的form.py文件中創(chuàng)建一個(gè)my_info_form 類:
** In form.py file ** """ 1. 利用Django form創(chuàng)建自己需要的表單 """ class my_info_form(forms.Form): user_id = forms.IntegerField() user_name = forms.CharField(max_length=254) email = forms.EmailField() """ 上面的這一小段代碼就可以在頁面上顯示出一個(gè)表格, 但是表格里面的文本框IntegerField, CharField, EmailField都處于可編輯狀態(tài)。 大多數(shù)情況下我們不想要用戶可以隨意更改頁面展示的內(nèi)容,所以需要對(duì)這些文本框進(jìn)行設(shè)置來改變可編輯狀態(tài)。 代碼如下: """ 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__()方法, 首先, 要調(diào)用super(forms.Form, self).__init__(*args,**kwargs), 注意這里的__init__()方法里沒有self。*args會(huì)傳遞要展示的信息, **kwargs會(huì)傳遞改變文本框格式的信息。 如果不調(diào)用super方法, 會(huì)報(bào)no fields 錯(cuò)誤。 第二, 更改文本框編輯狀態(tài): self.fields['user_id'].widget.attrs['readonly'] = True self.fields['user_name'].widget.attrs['readonly'] = True self.fields['email'].widget.attrs['readonly'] = True 第三, 試著運(yùn)行一下, 你會(huì)發(fā)現(xiàn)文本框已經(jīng)不能進(jìn)行編輯了! """
方法二:
""" 在創(chuàng)建文本框的時(shí)候?qū)嵱肈jango的widget 設(shè)置文本框的屬性為 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'}))
補(bǔ)充知識(shí):將input標(biāo)簽設(shè)置為不可編輯狀態(tài)的三種方法
一:disabled
disabled 屬性規(guī)定應(yīng)該禁用 input 元素,被禁用的 input 元素,不可編輯,不可復(fù)制,不可選擇,不能接收焦點(diǎn),后臺(tái)也不會(huì)接收到傳值。設(shè)置后文字的顏色會(huì)變成灰色。disabled 屬性無法與 <input type="hidden"> 一起使用。
示例:
<input type="text" disabled="disabled" />
二:readonly
readonly 屬性規(guī)定輸入字段為只讀可復(fù)制,但是,用戶可以使用Tab鍵切換到該字段,可選擇,可以接收焦點(diǎn),還可以選中或拷貝其文本。后臺(tái)會(huì)接收到傳值. readonly 屬性可以防止用戶對(duì)值進(jìn)行修改。readonly 屬性可與 <input type="text"> 或 <input type="password"> 配合使用。
示例:
<input type="text" readonly="readonly">
三:readonly unselectable="on"
readonly unselectable="on" 該屬性跟disable類似,input 元素,不可編輯,不可復(fù)制,不可選擇,不能接收焦點(diǎn),設(shè)置后文字的顏色也會(huì)變成灰色,但是后臺(tái)可以接收到傳值。
示例:
<input type="text" readonly unselectable="on" >
以上這篇Django Form設(shè)置文本框?yàn)閞eadonly操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
matplotlib調(diào)整子圖間距,調(diào)整整體空白的方法
今天小編就為大家分享一篇matplotlib調(diào)整子圖間距,調(diào)整整體空白的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08最新版 Windows10上安裝Python 3.8.5的步驟詳解
這篇文章主要介紹了最新版 Windows10上安裝Python 3.8.5的步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11Python scrapy爬取蘇州二手房交易數(shù)據(jù)
scrapy的第二個(gè)實(shí)例對(duì)比上一個(gè),在數(shù)據(jù)處理上增加了新的需求,運(yùn)用了管道文件pipelines.py,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06Pandas之使用drop_duplicates:去除重復(fù)項(xiàng)
這篇文章主要介紹了Pandas之使用drop_duplicates:去除重復(fù)項(xiàng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Python+matplotlib+numpy實(shí)現(xiàn)在不同平面的二維條形圖
這篇文章主要介紹了Python+matplotlib+numpy實(shí)現(xiàn)在不同平面的二維條形圖,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01selenium學(xué)習(xí)教程之定位以及切換frame(iframe)
這篇文章主要給大家介紹了關(guān)于selenium學(xué)習(xí)教程之定位以及切換frame(iframe)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Python中利用ItsDangerous快捷實(shí)現(xiàn)數(shù)據(jù)加密
這篇文章主要介紹了Python中利用ItsDangerous快捷實(shí)現(xiàn)數(shù)據(jù)加密,通過使用Python庫ItsDangerous,我們就可以高效快捷地完成數(shù)據(jù)加密/解密的過程,本文結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2022-11-11