• 【转载】Django form在模版中的渲染方式


    原文链接:https://www.cnblogs.com/solozorro/p/6165214.html

    form在模版中的渲染方式

    一、form.as_p

    渲染表单为一系列的p标签,每个p标签包含一个字段:

    <p> 
       <label for="id_subject">Subject:</label>
       <input id="id_subject" type="text" name="subject" maxlength="100" />
    </p>

    二、form.as_ul

    渲染表单为一系列的li标签,每个li 标签包含一个字段,它不包含ul标签:

    <li>
      <label for="id_subject">Subject:</label>
      <input id="id_subject" type="text" name="subject" maxlength="100" />
    </li>

    三、form.as_table

    输出表单为一个HTML的table:

    <tr>
      <th>
       <label for="id_subject">Subject:</label>
      </th>
      <td>
        <input id="id_subject" type="text" name="subject" maxlength="100" />
      </td>
    </tr>

    四、for field in form

    通过迭代form,获取其中的所有field。field可引用的包括{{ field.label_tag }} , {{ field }} , {{ field.errors }} :

      {% for field in form %}
      <div class="form-group">     
          {{ field.label_tag }}         
         <div class="">
            {{ field }}
         </div>
         {{ field.errors }}
      </div>
     {% endfor %}
    • field.label_tag
      {{ field.label_tag }}输出为field的label元素:
      <label for="id_message">Message:</label>
    • field
      {{ field }}输出为field的input
      <input type="text" name="message" id="id_message" />
    • field.errors
      {{ field.errors }}field的errors元素(errors一般在form验证出错的时候显示)
      ['This field is required.']

    五、form.fieldname

    直接将form作为一个dict,引用其每一个field,比如 {{ form.title }} 引用form中的title这个field:

    <div class="form-group">
       <label class="control-label">
           {{ form.title.label_tag }}    
       </label>
       <div class="">
           {{ form.title }}
       </div>
       {{ form.title.errors }}
    </div>

    这种方式一般用于form需要更加精准的样式的时候,逐个元素逐个元素的编排到html中。

  • 相关阅读:
    你能用多长时间停车?
    中国威胁论好像还挺严重的
    热爱生命
    lunix下shell脚本批量获取文件,批量修改文件内容
    sql数据操作的若干心得(二)向表中自动插入自增的ID
    Asp.net开发之旅动态产生控件
    Asp.net开发之旅GridView中嵌入DropDownList的一点心得
    Asp.net开发之旅开发环境
    Asp.net开发之旅简单的引用母版页
    Sql数据操作的若干心得
  • 原文地址:https://www.cnblogs.com/life-for-test/p/13782240.html
Copyright © 2020-2023  润新知