Django中动态表单的任何现有解决方案?

Posted

技术标签:

【中文标题】Django中动态表单的任何现有解决方案?【英文标题】:Any existing solutions for dynamic forms in Django? 【发布时间】:2011-10-11 02:53:18 【问题描述】:

我正在寻找使用 Django 构建动态表单的现有解决方案。我想要的是一个看起来像表格的表单,但是当点击它的任何单元格时,会动态显示文本框而不是文本,然后用户可以编辑该值。

我知道这是一个相当抽象的描述,但我真的很感激所有相关的内容:如果该库/框架将重新加载绝对所有表以将其从完全只读切换到完全可编辑,那也很好。

我正在实施一个概念验证网络应用程序,因此我想避免花时间从头开始实施它。

我相信描述不清楚。这里是:

    例如,有一个用户列表。只是一个简单的表。管理员单击这些用户之一并显示个人资料:

    登录:jsmith

    真名:约翰·史密斯

    组:用户

    然后管理员双击“John Smith”并加载文本框而不是文本:

    登录:jsmith

    真实姓名:[约翰·史密斯]

    组:用户

    [保存] [取消]

    管理员现在可以修改 jsmith 的真实姓名。如果单击保存,则将数据发送到服务器。如果单击“取消”,则数据将恢复并且配置文件与第 1 页一样

更新:我想要的是我们在 ***.com 上的内容 - 写评论(不是回答)并发布。然后您可以在不重新加载页面的情况下对其进行编辑。这就是我之前一直在谈论的。所以,我需要那种可扩展且可 Django 注入的东西

【问题讨论】:

【参考方案1】:

我找到了InplaceEditForm,它很容易从 svn(页面底部的链接)安装,而且安装起来非常简单。它不如 spacedman 提到的 JS 套件好,但它很容易工作。请注意,您必须以编辑权限登录才能使用它(我花了一段时间才弄清楚)。因此,只需登录您的管理员,然后返回您的测试页面。

在这里和那里编辑几个字段会很好,但我正在寻找类似编辑的电子表格(如 spacedman 的链接),所以我可能会继续搜索

【讨论】:

已经转移到 GWT,因为 Django 对于这类任务来说似乎是太低级的解决方案。但是谢谢;-) 猜这取决于网站的范围。似乎 jsut 需要大量的 js/jquery/ajax/whatever 知识来实现​​这样的东西。关于如何在 django 中为异步新手轻松实现它的现有软件包和/或指南并不多。可能需要查看 gwt 以获得乐趣。 这里完全同意。这可以使用 Django 和 javascript 从头开始​​实现,但需要时间。 GWT 允许你从不去想它【参考方案2】:

听起来你想要的是一个 Javascript 数据网格小部件。 Ext JS 工具包有一个很好的例子,如下所示:

http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/cell-editing.html

现在请注意,这与 Django 无关,这些东西可以由任何 Web 服务器或应用程序服务器部署。

当然,在 Django 服务器上实现这一点只是意味着确保您的服务器提供 Javascript,并且您已正确编写任何 Ajax 调用。但这是下一步。

【讨论】:

嗯,我的想法是,我正在寻找能够完全摆脱使用 JS 的解决方案。我想以简单的 Django 方式创建表单,将其绑定到模型等。我可以花费 16 个小时来实现它,但我只是不想弄乱它。 请查看问题 - 我已经添加了一些说明。另外,请不要编辑标签。 当您说“表格”时,我认为是“网格”,这就是表格标签的用途。这部分是让我走错路的原因。现在清楚多了。此外,标签是可编辑的,所以我们可以编辑它们:) 请原谅我的英语,我不是母语人士,所以我在使用恰当的词时遇到了一些问题 ;) 那么,既然我们很清楚,还有其他想法吗? 如果没有 JavaScript,这将是不可能的。我也没有看到提供此解决方案的 django-app。本质上,您需要使用 Spacedman 建议的库,并在您自己的 JS 代码和 django 视图中处理各种回调。

以上是关于Django中动态表单的任何现有解决方案?的主要内容,如果未能解决你的问题,请参考以下文章

通过使用javascript单击按钮动态添加django表单

django - 表单中的动态选择字段

如何根据用户输入动态更改 django 中的表单(提交前)

django表单动态属性查找

动态自定义 django 表单小部件

Django:在表单向导中为步骤动态设置表单集