隐藏选择多项Django

时间:2012-08-01 15:42:17

标签: django django-forms django-orm

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

一种方法是简单地使用一个隐藏的输入,该输入采用逗号分隔的id列表。这将需要在提交时进行大量的手动处理和验证,我不禁感到可以避免。

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

任何人都能提出最佳方法吗?

1 个答案:

答案 0 :(得分:0)

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