2012-08-01 78 views
0

我在我的django应用程序中有几个需要支持附件的表单。每个表单实例可以有任意数量的附件,包括无。我想介绍一个基于jQuery的上传小部件来管理这些上传,允许上传异步处理。附件存储在他们自己的模型中,因此从附件模型到需要附件的每个模型都有多对多的附件。当成功上传并处理附件时,处理上传的视图将返回附件模型中的标识,然后将其插入到表单上的隐藏字段中。我目前正在试图决定如何最好地在表单中表示这一点。隐藏选择多个项目Django

一种方法是只需要一个隐藏的输入,它需要用逗号分隔的id列表。然后这将需要相当多的手动处理和提交验证,我不禁感到可以避免。

在其他地方,我使用了一个HiddenInput作为单个值,我正在做类似的事情,并在窗体中动态添加项目到相关模型。然而,我不能看到我如何能够通过一个简单的外键直接将它扩展到多对多。

任何人都可以建议最好的方式去做这件事?

回答

0

尝试使用formsetsmodel_formsets创建用于创建/编辑多个对象的表单,也可以使用javascript在浏览器中动态添加表单。

+0

我不认为一个formset会在这里帮助,我的问题是没有添加上传表单,而是将返回的数据传回原始表单。 – TimD 2012-08-01 16:07:53

+1

没有任何东西禁止你使用通过form,modelform,modelformset,formset获得的数据。阅读forms/modelforms文档。你有什么尝试?将当前代码附加到问题可能会更有用。 – machaku 2012-08-01 16:18:34