{{ form.as_ul }} – 将 Django 表单渲染为列表


Django 彻底改变了网络工程,使全球的开发人员都能轻松便捷地使用它。其显著的特点是强大的表单操作系统,它简化了 Web 表单的开发,同时还方便地实现了表单的验证和处理。专注于将这些表单显示为 HTML 列表为用户提供了许多好处,例如由于易于自定义功能而带来的高级样式设计可能性,以及增强的响应能力和更高的可访问性。

本文深入探讨了有效地将 Django 表单显示为列表的细微差别,阐明了其众多优势,详细介绍了实施的简单步骤,并提供了最佳实践以获得最佳结果。通过仔细阅读本文档,您也可以在使用 Django 的强大表单操作功能创建网站时提高效率!

为什么要将 Django 表单显示为列表?

将 Django 表单显示为列表为 Web 开发人员提供了多种优势

自适应样式:列表提供了一个灵活的样式框架,简化了创建视觉吸引力和响应式表单布局的过程。

在当今时代,拥有响应式设计至关重要。列表通过流畅地适应各种屏幕尺寸和设备来提供此功能,从而确保每个用户在不同平台上都能体验到一致性。

同样重要的是要强调将表单显示为列表如何通过减少开发人员手动编写 HTML 和 CSS 代码来提高可维护性。这将大大简化随着时间的推移维护和更新表单的过程。

最后,在显示表单时利用列表解决了残疾用户的可访问性问题,因为它允许屏幕阅读器更好地理解所有组件之间的关系。

如何将 Django 表单显示为列表

现在我们已经了解了将 Django 表单显示为列表的好处,让我们深入了解此过程涉及的步骤。

创建 Django 表单

在 forms.py 文件中识别表单类对于创建 Django 表单至关重要。继承自 django.forms.ModelForm 或 django.forms.Form 可以有效地完成此任务。

  • 导入所需的模块:来自 django 包的 forms 以及来自当前应用程序 models.py 文件的 UserProfile 模型。

  • 创建一个名为 UserProfileForm 的表单类,该类继承自 forms.ModelForm。

  • 在 UserProfileForm 类中,创建一个嵌套的 Meta 类。

  • 将 Meta 类的 model 属性设置为 UserProfile 模型。这通知 Django 该表单将用于创建或修改 UserProfile 实例。

  • 在 Meta 类的 fields 属性中列出字段名称。这些是将包含在表单中的字段。

from django import forms
from .models import UserRegistration

class UserRegistrationForm(forms.ModelForm):
    class Meta:
        model = UserRegistration
        fields = ['first_name', 'last_name', ‘roll_no’, 'password']

利用 Django 的 as_ul 方法

接下来,我们将利用 Django 的内置方法将表单显示为无序列表 - as_ul 方法。在您的模板中,您可以像这样在表单实例上调用 as_ul 方法

  • 创建一个 HTML 表单组件,其属性 method="POST" 表示表单在提交数据时将使用 POST 方法。

  • 调用 {% csrf_token %} 格式标签以在表单中包含 CSRF 令牌,这有助于防止跨站点请求伪造攻击。

  • 创建一个 HTML 无序列表 (ul) 元素。

  • 在 ul 元素内,调用 {{ form.as_ul }} 模板标签以将 Django 表单显示为列表。这将为每个表单字段生成所需的 HTML,每个字段都显示在其自己的列表项 (li) 元素中。

  • 包含一个具有属性 type="submit" 的 HTML 输入元素以构建表单的提交按钮。

<form method="POST">
  {% csrf_token %}
  <ul>
    {{ form.as_ul }}
  </ul>
  <input type="submit" value="Submit">
</form>

更改列表外观

您可以通过将 CSS 类或内联样式附加到 ul 元素来方便地修改列表的外观。例如

  • 将 CSS 类 (class="form−list") 附加到 ul 元素以使用外部或内部 CSS 规则应用自定义样式。

  • 使用 style 属性将内联样式分配给 ul 元素。在本例中,我们通过将 padding−left 设置为 0 来删除列表的默认左填充。

<ul class="form-list" style="padding-left: 0;">
  {{ form.as_ul }}
</ul>
  • 让我们看一下完整的代码

from django import forms
from .models import UserRegistration

class UserRegistrationForm(forms.ModelForm):
    class Meta:
        model = UserRegistration
        fields = ['first_name', 'last_name', '‘roll_no’, 'password']

<form method="POST">
  {% csrf_token %}
  <ul>
    {{ form.as_ul }}
  </ul>
  <input type="submit" value="Submit">
</form>

<ul class="form-list" style="padding-left: 0;">
  {{ form.as_ul }}
</ul>

输出

我们已成功将 Django 表单渲染为列表。这是包含四个字段的最终用户注册表单。

将 Django 表单显示为列表的最佳实践

为了确保最佳的用户体验和可维护性,在将 Django 表单显示为列表时,请遵循以下最佳实践

  • 使用语义标记:使用适当的列表组件(如 ol 和 li)来提供更好的上下文和提高可访问性。

  • 包含标签和占位符:确保为每个表单字段包含标签以及占位符,以指导用户完成表单填写过程。

  • 实施响应式设计:通过使用 CSS 媒体查询或提供响应式列表类的 CSS 框架(如 Bootstrap)来确保您的列表具有响应性。

  • 提高可访问性:将 ARIA 属性和角色添加到您的列表中,以提高残疾用户的可访问性。

  • 个性化错误消息:当表单验证失败时,向用户提供清晰且信息丰富的错误消息。您可以在表单类中为各个字段个性化错误消息,或者使用 {{ form.errors }} 模板标签在表单顶部显示错误列表。

  • 使用 JavaScript 进行实时验证:通过使用 JavaScript 提供实时表单验证来增强用户体验。这可以帮助用户在提交表单之前识别和纠正错误,从而减少失败提交和服务器端验证的数量。

结论

将 Django 表单显示为列表提供了许多好处,例如自适应样式、改进的响应能力、增强的可维护性和增强的可访问性。通过遵循本文中概述的步骤并坚持最佳实践,您将能够使用 Django 创建简化、用户友好且可行的 Web 应用程序。

在继续提高您的 Django 技能时,请记住要了解最新的最佳实践、工具和方法,以确保您的项目始终高效、安全和用户友好。编码愉快!

更新于: 2023年7月10日

212 次查看

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.