欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

django表單的Widgets使用詳解

 更新時間:2019年07月22日 14:13:41   作者:NAVYSUMMER  
這篇文章主要介紹了django表單的Widgets,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

前言

不要將Widget與表單的fields字段混淆。表單字段負(fù)責(zé)驗證輸入并直接在模板中使用。而Widget負(fù)責(zé)渲染網(wǎng)頁上HTML表單的輸入元素和提取提交的原始數(shù)據(jù)。widget是字段的一個內(nèi)在屬性,用于定義字段在瀏覽器的頁面里以何種HTML元素展現(xiàn)。

一、指定使用的widget

每個字段都有一個默認(rèn)的widget類型。如果你想要使用一個不同的Widget,可以在定義字段時使用widget參數(shù)。 像這樣:

from django import forms

class CommentForm(forms.Form):
  name = forms.CharField()
  url = forms.URLField()
  comment = forms.CharField(widget=forms.Textarea)

這將使用一個Textarea Widget來展現(xiàn)表單的評論字段,而不是默認(rèn)的TextInput Widget。

二、設(shè)置widget的參數(shù)

許多widget具有可選的額外參數(shù),下面的示例中,設(shè)置了SelectDateWidget的years 屬性,注意參數(shù)的傳遞方法:

from django import forms

BIRTH_YEAR_CHOICES = ('1980', '1981', '1982')
FAVORITE_COLORS_CHOICES = (
  ('blue', 'Blue'),
  ('green', 'Green'),
  ('black', 'Black'),
)

class SimpleForm(forms.Form):
  birth_year = forms.DateField(widget=forms.SelectDateWidget(years=BIRTH_YEAR_CHOICES))
  favorite_colors = forms.MultipleChoiceField(
    required=False,
    widget=forms.CheckboxSelectMultiple,
    choices=FAVORITE_COLORS_CHOICES,
  )

三、為widget添加CSS樣式

默認(rèn)情況下,當(dāng)Django渲染W(wǎng)idget為實際的HTML代碼時,不會幫你添加任何的CSS樣式,也就是說網(wǎng)頁上所有的TextInput元素的外觀是一樣的。

看下面的表單:

from django import forms

class CommentForm(forms.Form):
  name = forms.CharField()
  url = forms.URLField()
  comment = forms.CharField()

這個表單包含三個默認(rèn)的TextInput Widget,以默認(rèn)的方式渲染,沒有CSS類、沒有額外的屬性。每個Widget的輸入框?qū)秩镜靡荒R粯?,丑陋又單調(diào):

>>> f = CommentForm(auto_id=False)
>>> f.as_table()
<tr><th>Name:</th><td><input type="text" name="name" required /></td></tr>
<tr><th>Url:</th><td><input type="url" name="url" required /></td></tr>
<tr><th>Comment:</th><td><input type="text" name="comment" required /></td></tr>

在真正的網(wǎng)頁中,你可ending不想讓每個Widget看上去都一樣。可能想要給comment一個更大的輸入框,可能想讓‘name' Widget具有一些特殊的CSS類。

可以在創(chuàng)建Widget時使用Widget.attrs參數(shù)來實現(xiàn)這一目的:

class CommentForm(forms.Form):
  name = forms.CharField(widget=forms.TextInput(attrs={'class': 'special'}))
  url = forms.URLField()
  comment = forms.CharField(widget=forms.TextInput(attrs={'size': '40'}))

注意參數(shù)的傳遞方式!

這次渲染后的結(jié)果就不一樣了:

>>> f = CommentForm(auto_id=False)
>>> f.as_table()
<tr><th>Name:</th><td><input type="text" name="name" class="special" required /></td></tr>
<tr><th>Url:</th><td><input type="url" name="url" required /></td></tr>
<tr><th>Comment:</th><td><input type="text" name="comment" size="40" required /></td></tr>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python?matplotlib中更換畫布背景顏色的3種方法

    Python?matplotlib中更換畫布背景顏色的3種方法

    這篇文章主要給大家介紹了關(guān)于Python?matplotlib中更換畫布背景顏色的3種方法,在Matplotlib中,我們可以使用set_facecolor()方法來設(shè)置背景顏色,文中通過圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 使用PyCharm安裝pytest及requests的問題

    使用PyCharm安裝pytest及requests的問題

    這篇文章主要介紹了使用PyCharm安裝pytest及requests的相關(guān)資料,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • pytorch常用函數(shù)定義及resnet模型修改實例

    pytorch常用函數(shù)定義及resnet模型修改實例

    這篇文章主要為大家介紹了pytorch常用函數(shù)定義及resnet模型修改實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python arrow模塊使用方法

    Python arrow模塊使用方法

    Arrow 是用于處理日期和時間的 Python 模塊。 與內(nèi)置的日期和時間工具相比,它使創(chuàng)建,操作,格式化和轉(zhuǎn)換日期,時間和時間戳變得更加容易
    2022-10-10
  • Python添加時間軸以實現(xiàn)動態(tài)繪圖詳解

    Python添加時間軸以實現(xiàn)動態(tài)繪圖詳解

    這篇文章主要為大家詳細(xì)介紹了Python如何添加時間軸以實現(xiàn)動態(tài)繪圖,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以參考一下
    2023-09-09
  • python操作kafka實踐的示例代碼

    python操作kafka實踐的示例代碼

    這篇文章主要介紹了python操作kafka實踐的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Jupyter Notebook切換conda虛擬環(huán)境的實現(xiàn)步驟

    Jupyter Notebook切換conda虛擬環(huán)境的實現(xiàn)步驟

    本文主要介紹了Jupyter Notebook切換conda虛擬環(huán)境的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 使用sklearn進(jìn)行對數(shù)據(jù)標(biāo)準(zhǔn)化、歸一化以及將數(shù)據(jù)還原的方法

    使用sklearn進(jìn)行對數(shù)據(jù)標(biāo)準(zhǔn)化、歸一化以及將數(shù)據(jù)還原的方法

    今天小編就為大家分享一篇使用sklearn進(jìn)行對數(shù)據(jù)標(biāo)準(zhǔn)化、歸一化以及將數(shù)據(jù)還原的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 解決Tensorflow使用pip安裝后沒有model目錄的問題

    解決Tensorflow使用pip安裝后沒有model目錄的問題

    今天小編就為大家分享一篇解決Tensorflow使用pip安裝后沒有model目錄的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python基于回溯法子集樹模板解決最佳作業(yè)調(diào)度問題示例

    Python基于回溯法子集樹模板解決最佳作業(yè)調(diào)度問題示例

    這篇文章主要介紹了Python基于回溯法子集樹模板解決最佳作業(yè)調(diào)度問題,簡單說明了作業(yè)調(diào)度問題并結(jié)合實例形式給出了Python使用回溯法子集樹模板實現(xiàn)最佳作業(yè)調(diào)度問題的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09

最新評論