django - Django 中的复杂表单 - 我应该查看哪些应用程序和 Django/Python 功能?

标签 django django-forms

我的项目中有很多复杂的表单,我一直觉得我可以更优雅、更简单地对它们进行编码。
所以我的问题是有哪些好的应用程序和实践可以帮助我?具体来说,我正在考虑需要执行以下操作的情况:

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

  • 也欢迎任何其他更复杂的表单场景的解决方案。以上是我已经遇到的问题,但我想大致了解一下表单的一些最佳实践。

    最佳答案

    我自己也问过类似的问题。 Django 的表单处理有很大的改进空间,并且有一些关于做些什么的讨论,但进展并不快。你提出这个问题证明这个领域需要一些关注。

    也就是说,目前(据我所知)处理这些情况的方法是:

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

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

    关于django - Django 中的复杂表单 - 我应该查看哪些应用程序和 Django/Python 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1789641/

    相关文章:

    python - 使用 django-rest-framework 的自动 'created by user' 字段?

    python - View 中的 Django asyncio 调用不起作用

    python - join() 参数必须是 str 或字节,而不是 'dict' -- 在 Django 中创建具有多表继承的表单

    Django 自定义表单验证最佳实践?

    javascript - 无法使用formset上传多张图片

    django - 在 heroku 中设置数据库 : postgresql in django 1. 8

    Django Forms - 在 View 中设置字段值

    python - 如何以通用换行模式访问上传的文件?

    django - 不同的ManyToManyField小部件

    Django 。将变量从 View 传递到模板