Django Form設(shè)置文本框?yàn)閞eadonly操作
用Django開發(fā)網(wǎng)站的時候,前端頁面內(nèi)的文本框總是不能被設(shè)置為只讀,找了一些資料發(fā)現(xiàn)可以在form class里面進(jìn)行設(shè)置。
方法一:
首先在自己創(chuàng)建的form.py文件中創(chuàng)建一個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()''' 上面的這一小段代碼就可以在頁面上顯示出一個表格, 但是表格里面的文本框IntegerField, CharField, EmailField都處于可編輯狀態(tài)。 大多數(shù)情況下我們不想要用戶可以隨意更改頁面展示的內(nèi)容,所以需要對這些文本框進(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會傳遞要展示的信息, **kwargs會傳遞改變文本框格式的信息。 如果不調(diào)用super方法, 會報(bào)no fields 錯誤。第二, 更改文本框編輯狀態(tài):self.fields[’user_id’].widget.attrs[’readonly’] = Trueself.fields[’user_name’].widget.attrs[’readonly’] = Trueself.fields[’email’].widget.attrs[’readonly’] = True第三, 試著運(yùn)行一下, 你會發(fā)現(xiàn)文本框已經(jīng)不能進(jìn)行編輯了!'''
方法二:
''' 在創(chuàng)建文本框的時候?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ǔ)充知識:將input標(biāo)簽設(shè)置為不可編輯狀態(tài)的三種方法
一:disabled
disabled 屬性規(guī)定應(yīng)該禁用 input 元素,被禁用的 input 元素,不可編輯,不可復(fù)制,不可選擇,不能接收焦點(diǎn),后臺也不會接收到傳值。設(shè)置后文字的顏色會變成灰色。disabled 屬性無法與 <input type='hidden'> 一起使用。
示例:
<input type='text' disabled='disabled' />
二:readonly
readonly 屬性規(guī)定輸入字段為只讀可復(fù)制,但是,用戶可以使用Tab鍵切換到該字段,可選擇,可以接收焦點(diǎn),還可以選中或拷貝其文本。后臺會接收到傳值. readonly 屬性可以防止用戶對值進(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è)置后文字的顏色也會變成灰色,但是后臺可以接收到傳值。
示例:
<input type='text' readonly unselectable='on' >
以上這篇Django Form設(shè)置文本框?yàn)閞eadonly操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 在vue中封裝方法以及多處引用該方法詳解2. IDEA巧用Postfix Completion讓碼速起飛(小技巧)3. Python的Tqdm模塊實(shí)現(xiàn)進(jìn)度條配置4. Python 多線程之threading 模塊的使用5. 淺談python多線程和多線程變量共享問題介紹6. CSS3中Transition屬性詳解以及示例分享7. Android 基于Bitmap的四種圖片壓縮方式8. IntelliJ IDEA2020.2.2創(chuàng)建Servlet方法及404問題9. Python如何批量獲取文件夾的大小并保存10. CSS代碼檢查工具stylelint的使用方法詳解
