django 形式与传统形式

Posted

技术标签:

【中文标题】django 形式与传统形式【英文标题】:django forms vs traditional forms 【发布时间】:2012-08-01 18:46:50 【问题描述】:

我目前正在制作一个 django 网站,我对使用 Django-Forms 和传统的手工编码 html 表单感到困惑。 HTML 表单在很多方面都对我有利,但我也尝试过 django 表单,它们肯定有其优势。 对此的任何帮助将不胜感激。

【问题讨论】:

尝试将此作为问题陈述。目前,您正在发表带有隐含问题的声明。明确提出您的问题,例如“我为什么要使用 Django 表单?” 【参考方案1】:

在我看来,当您有一个简单的应用程序以接近您希望将其存储在数据库中的方式从用户那里获取数据时,Django 表单非常棒。在这种情况下,您可以简单地编写模型并使用模型表单为您的表单生成正确的 HTML。

您还可以使用表单从用户那里获取与模型不对应的数据,方法是使用普通表单并定义其属性。

使用 Django 表单,您还可以免费获得一些验证,您可以将字段设为可选或必填,还可以创建下拉选项。

当您想要以自定义方式显示某些字段时,情况会变得更加困难。您仍然可以使用 Django 表单,但需要更加努力。

【讨论】:

你知道是否有办法在 Django 中编辑字段的呈现方式吗?【参考方案2】:

如果您使用 django 开发您的网站,我认为最好只使用 django-forms,因为它们已内置验证并且可以轻松与您的模型链接。您还将拥有一致的格式,并且不需要每次都输入 html。

您可能还想查看crispy-forms 以获得更多自定义。

【讨论】:

【参考方案3】:

将 Django 表单视为 HTML 表单的 DRY。 使用 Django 表单,标准表单 HTML 会自动为您生成,您只需为要自定义表单的位置编写代码。 Django 表单还为您处理表单验证,只有当您需要一些特殊情况验证时,您才可以使用自己编写的代码进行覆盖。

【讨论】:

【参考方案4】:

Django 表单是一种在页面上生成表单并对其进行管理的方式。您可以在页面上手动编写表单代码,并且只要您使用与表单类期望的字段名称兼容的字段名称,您就可以使用表单类与响应中发送的数据进行交互。

最终,django 表单肯定会让您的生活更轻松。

【讨论】:

【参考方案5】:

Django 表单的主要目的是验证数据。

您可以将它们用于未通过 HTML POST 提交的数据。将它们渲染为 HTML 是他们所做的其他事情,但这不是他们的主要目的。

【讨论】:

以上是关于django 形式与传统形式的主要内容,如果未能解决你的问题,请参考以下文章

如何以 django 形式过滤多对多字段

Django 和 ajax 形式。表单运行,但我没有收到确认消息

具有浮点形式输入的 django 整数模型字段

Django - 指定 django.db.models.(???) 字段形式的宽度

Django - 使用多种形式

字段标签酥脆形式 Django