【发布时间】:2011-03-22 11:56:16
【问题描述】:
我有一个保存大量“记录”的系统,需要集成一个组件来生成任何选定记录的报告。
对于用户来说,它看起来像这样:
- 点击“创建报告”
- 选择要包含在报告中的记录。
- 点击“提交”并显示报告。
我认为:
- 加载所有记录。
- 创建一个 ReportForm,它通过迭代第 1 部分中的所有记录并使用如下代码生成“BooleanField”:self.fields['cid_' + str(record.id)] = BooleanField()
- 返回 HTML,期待它回来。
- 遍历以“cid_”开头的所有字段并创建要包含在报告中的记录 ID 列表。
- 将数字传递给报告生成器。
但在视图中,我无法以我能想象的唯一方式访问表单数据。由于我不知道哪些记录 ID 可用(因为有些可能已被删除等),我需要像这样访问它:
{{form.fields['cid_'+str(record.id)']}}
但显然这是非法的。
有人有什么建议吗?
【问题讨论】:
-
为了确保我理解:所以你想从一个记录列表中选择要包含在报告中,但你不能简单地查询这些记录,因为有些可能会被删除,等等从加载页面到开始报告的时间?您可以轻松创建一个简单的表单,列出(例如复选框)所有记录..如果您能准确告诉我您想要什么,我可能会提供更多帮助。
-
这正是我想做的——创建一个将所有记录列为复选框的表单。但我不能只做“form.as_p”,因为我有我想使用的特定格式,所以我不知道我可以访问哪些字段。
标签: python django forms dynamic views