Django中的复杂形式 - 我应该看看哪些应用程序和Django/Python功能?

Mon*_*lik 9 django django-forms

我的项目中有很多复杂的表单,我一直觉得我可以更优雅,更简单地编写它们.所以我的问题是什么是一些可能对我有帮助的优秀应用和实践?具体来说,我正在考虑我需要做的事情:

  • 通过一个表单编辑/添加多个对象(例如:假设我有一个伙伴关系模型和一个人员模型 - 每个伙伴关系对象都与两个人有关.现在我想说我想编辑伙伴关系和伙伴关系中的两个人同时.)
  • 处理多对多关系 - 特别是那些有额外数据关联的关系
  • "类似向导"的表单(因为有几页/步骤,用户必须在将任何内容保存到数据库之前完成所有这些操作)
  • 根据数据库中的内容给出了写入表单字段的建议(我猜这真的是一个AJAX问题,但我对是否有一些django应用程序以某种方式简化这个问题感兴趣)

任何其他更复杂的表单方案的解决方案也欢迎.以上是我已经遇到的问题,但我想一般了解一下表格的最佳实践.

Joh*_*ebs 8

我自己也问了类似的问题.有很多的Django的表单处理的改进余地,并且有做一些事的一些讨论,但它不是非常迅速.你问这个问题验证这个领域需要一些关注.

也就是说,处理这些场景的当前方式(据我所知)是:

  1. 最简单的方法是使用ModelForm合作伙伴关系和inlineformset 人民.这并不太难,但请注意,没有简单的方法将它们组合成一个表单对象,因此您必须单独处理它们.
  2. 不完全确定你的想法是什么,但我认为内联表单集也是这里的方法.
  3. Django从1.0开始就支持这个:http://docs.djangoproject.com/en/dev/ref/contrib/formtools/form-wizard/
  4. 我正在开发一个应用程序来完成这个(在jQuery的帮助下).我一直想清理它并把它放在GitHub上,任何额外的兴趣肯定会加速这个过程.

内联表格集:http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#inline-formsets

  • 扩展#4,这很简单。您只需要一个 django 视图,您就可以通过 ajax 调用将一些参数传递给它。django 视图返回一些带有建议的 json 数据。您应该能够使用几乎任何 jquery(或其他 js 框架)自动完成/提示插件以及类似的 django 视图。 (2认同)