在Django中进行实时编辑

时间:2010-01-08 14:16:37

标签: javascript ajax django forms

想象一下,你有一张地址簿卡片。通常,字段以特定布局显示为静态文本(想象有多个电话号码,电子邮件等)。编辑时,您希望使用相同的布局,但使用表单字段而不是静态文本。似乎在Django中执行此操作的正常方法是使用单独的视图和模板,这会强制您复制所有布局标记(即,它不是DRY),并更改页面以在浏览和编辑模式之间切换。 / p>

如果您可以动态切换进出编辑模式,使用JavaScript将静态文本替换为表单字段(反之亦然),并使用Ajax将更改发送到服务器,那将更好。我称之为“实时编辑”,但也许有一个更好的术语。无论如何,有没有推荐的方法在Django中这样做?

我正在考虑为每个字段渲染静态版本和可编辑版本,并使用JavaScript隐藏并根据需要显示它们。但我还需要使用来自服务器的新数据更新静态字段,我需要考虑内联表单和复杂字段,例如图像(静态显示为<img>标记,并且您必须上传后更新src)。我可能还需要动态添加和删除字段或字段集(再次考虑内联表单集)。

总而言之,它需要大量的代码。是否有现有的Django解决方案或推荐的方法?否则,哪个JavaScript框架可能对此最有帮助?

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

我自己没有使用它,但我听说django-inline旨在实现此目的。

答案 2 :(得分:2)

您可能还想查看Javascript库jQuery及其inline editing capabilities