中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django form 渲染

發布時間:2020-07-12 11:24:10 來源:網絡 閱讀:1342 作者:quxf2012 欄目:開發技術

Django 的Form 類

Form包含各種字段(Field),每個Field也是一個類,每個Field包含一個widget的類,用來控制html元素的展示個屬性等.


Form

所有的Form都作為django.forms.Form 的子類創建

form.is_bound 返回當前表單是否已綁定數據

hidden_fields() visible_fields() 分別返回所有隱藏的列和可見的列


Widget 類

每個Field都會根據字段類型對應一個默認的類,也可以手動指定widget的值來更改默認widget類,如下

name=forms.CharField(label='名稱'max_length=200,widget=forms.TextInput(attrs={'class':'form-control'}))

widget.attrs 

 html屬性的一個字典  #{'class': 'form-control', 'required': 'required'}



字段的數據

不管表單提交的是什么數據,一旦通過調用is_valid() 成功驗證(is_valid() 返回True),驗證后的表單數據將位于form.cleaned_data 字典中。這些數據已經為你轉換好為Python 的類型。

此時,你依然可以從request.POST 中直接訪問到未驗證的數據,但是訪問驗證后的數據更好一些。


手動渲染字段

手動渲染時要加上non_field_errors這個錯誤信息.

{{ form.non_field_errors }}

<div class="fieldWrapper">
    {{ form.subject.errors }}
    <label for="{{ form.subject.id_for_label }}">Email subject:</label>
    {{ form.subject }}</div>

field 中有用的屬性


`field`.`get_XXX_display`  #xx指字段名.

當定義的字段為關系字段,選擇字段,bool等等,

django會自動生成一個get_xx_display的方法來生成這些字段的展示數據.

is_end_state = models.SmallIntegerField('是否', default=0,choices=[(0,'否'),(1,'是')])

is_end_state = models.SmallIntegerField('是否', default=0,choices=[(0,'否'),(1,'是')])

當字段類型為CharField時使用get_xx_display,獲取到的值為本身,

直接打印出來為0或者1,使用get_xx_display打印出來則為定義字段時的則為是/否


  • {{ field.label }}

  • 字段的label,例如Email address。

  • {{ field.label_tag }}

  • 包含在HTML <label> 標簽中的字段Label。它包含表單的label_suffix。例如,默認的label_suffix 是一個冒號:

    <label for="id_email">Email address:</label>
  • {{ field.id_for_label }}

  • 用于這個字段的ID(在上面的例子中是id_email)。如果你正在手工構造label,你可能想使用它代替label_tag。如果你有一些內嵌的JavaScript 并且想避免硬編碼字段的ID,這也是有用的。

  • {{ field.value }}

  • 字段的值,例如someone@example.com。

  • {{ field.html_name }}

  • 輸入元素的name 屬性中將使用的名稱。它將考慮到表單的前綴。

  • {{ field.help_text }}

  • 與該字段關聯的幫助文檔。

  • {{ field.errors }}

  • 輸出一個<ul class="errorlist">,包含這個字段的驗證錯誤信息。你可以使用{% for error in field.errors %}自定義錯誤的顯示。 這種情況下,循環中的每個對象只是一個包含錯誤信息的簡單字符串。

  • {{ field.is_hidden }}

  • 如果字段是隱藏字段,則為True,否則為False。作為模板變量,它不是很有用處,但是可以用于條件測試,例如:

{% if field.is_hidden %}
{% endif %}
  • {{ field.field }}

  • 表單類中的Field 實例,通過BoundField 封裝。你可以使用它來訪問Field 屬性,例如{% char_field.field.max_length %}。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳曲县| 锦屏县| 深泽县| 阜康市| 华蓥市| 湖北省| 萝北县| 九台市| 泸州市| 湖口县| 萨迦县| 永济市| 秭归县| 开阳县| 元氏县| 庆云县| 电白县| 宕昌县| 平泉县| 永清县| 综艺| 庆阳市| 星座| 称多县| 扎囊县| 淮阳县| 邹城市| 崇礼县| 瓮安县| 周宁县| 凤山市| 万安县| 微博| 洞口县| 邢台市| 安顺市| 阜城县| 娄底市| 赫章县| 客服| 博客|