當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Django RadioSelect用法及代碼示例


本文介紹 django.forms.RadioSelect 的用法。

聲明

class RadioSelect
  • template_name'django/forms/widgets/radio.html'
  • option_template_name'django/forms/widgets/radio_option.html'

類似於 Select ,但呈現為 <div> 標簽內的單選按鈕列表:

<div>
  <div><input type="radio" name="..."></div>
  ...
</div>
在 Django 4.0 中更改:

因此屏幕閱讀器更簡潔地宣布了它們,單選按鈕被更改為在<div>標簽中呈現。

要對生成的標記進行更精細的控製,您可以遍曆模板中的單選按鈕。假設一個表單 myform 帶有一個字段 beatles,該字段使用 RadioSelect 作為其小部件:

<fieldset>
    <legend>{{ myform.beatles.label }}</legend>
    {% for radio in myform.beatles %}
    <div class="myradio">
        {{ radio }}
    </div>
    {% endfor %}
</fieldset>

這將生成以下 HTML:

<fieldset>
    <legend>Radio buttons</legend>
    <div class="myradio">
        <label for="id_beatles_0"><input id="id_beatles_0" name="beatles" type="radio" value="john" required> John</label>
    </div>
    <div class="myradio">
        <label for="id_beatles_1"><input id="id_beatles_1" name="beatles" type="radio" value="paul" required> Paul</label>
    </div>
    <div class="myradio">
        <label for="id_beatles_2"><input id="id_beatles_2" name="beatles" type="radio" value="george" required> George</label>
    </div>
    <div class="myradio">
        <label for="id_beatles_3"><input id="id_beatles_3" name="beatles" type="radio" value="ringo" required> Ringo</label>
    </div>
</fieldset>

這包括<label> 標簽。為了更細化,您可以使用每個單選按鈕的 tagchoice_labelid_for_label 屬性。例如,這個模板……

<fieldset>
    <legend>{{ myform.beatles.label }}</legend>
    {% for radio in myform.beatles %}
    <label for="{{ radio.id_for_label }}">
        {{ radio.choice_label }}
        <span class="radio">{{ radio.tag }}</span>
    </label>
    {% endfor %}
</fieldset>

…將產生以下 HTML:

<fieldset>
    <legend>Radio buttons</legend>
    <label for="id_beatles_0">
        John
        <span class="radio"><input id="id_beatles_0" name="beatles" type="radio" value="john" required></span>
    </label>
    <label for="id_beatles_1">
        Paul
        <span class="radio"><input id="id_beatles_1" name="beatles" type="radio" value="paul" required></span>
    </label>
    <label for="id_beatles_2">
        George
        <span class="radio"><input id="id_beatles_2" name="beatles" type="radio" value="george" required></span>
    </label>
    <label for="id_beatles_3">
        Ringo
        <span class="radio"><input id="id_beatles_3" name="beatles" type="radio" value="ringo" required></span>
    </label>
</fieldset>

如果您決定不遍曆單選按鈕 - 例如,如果您的模板包含 {{ myform.beatles }} - 它們將在帶有 <div> 標簽的 <div> 中輸出,如上所述。

外部<div> 容器接收小部件的id 屬性(如果已定義),否則接收 BoundField.auto_id

在單選按鈕上循環時,labelinput 標簽分別包含 forid 屬性。每個單選按鈕都有一個id_for_label 屬性來輸出元素的 ID。

相關用法


注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.forms.RadioSelect。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。