Django - django表单用法的优点是什么?

时间:2014-02-17 01:35:34

标签: django django-forms

我几天都在学习Django而且我已经到了不再需要默认表单功能的地方(它们在模板,有效性,错误消息等中的显示方式)。所以我使用django给我的工具来定制所有这些。 但是,通过这样做,我最终得到的代码比我使用表单之前的代码更长!

在复杂项目中使用表单而不是使用表单(并且只处理request.POST/GET和stuff)是否有优势?

1 个答案:

答案 0 :(得分:3)

首先想到的最大优势:

表单和字段的验证器

以上内容包括:

  • 拒绝输入错误(缺少字段等)。
  • 自动生成错误消息并将其绑定到适当的模板对象
  • 重新填充包含良好数据的其他字段(当访问者因为他们错误地输入一个字段而必须重新输入表单时,这真的很糟糕)

当然,所有这些都可以从View中“手动”实现,但IMO Forms更加优雅。

对于更复杂的案例,

其他一些好处

  • FormSets - 用于同时显示多个相同类型的表单(即同时编辑同一类的多个对象)
  • 在一个视图(带前缀)上无缝使用多个表单
  • 可以重复使用小部件(您的自定义小部件),或插入任何第三方小部件
  • 对于非常复杂的表单视​​图:真棒django-extra-views
  • ModelForms(如果没有它,列表将无法完成)

最后,但应该始终是第一位的,除非它可能永远不会(在我自己的exp中):

  • 分离项目的逻辑层,
  • 保持代码清洁,遵守惯例和最佳实践。