3

我的 Django 站点上有一个表单(使用 ModelForm 制作),用户可以在其中提交一些数据来创建新对象或修改现有对象。但是,这些数据在提交到数据库之前需要由我们的员工审核,有时会在以后批量审核。

我知道我可以.save(commit=False)在我的表单处理视图中使用它来返回一个尚未保存到数据库中的对象。但是有没有办法从多个用户提交的内容中收集所有这些对象以供以后查看?理想情况下,我会有一个管理页面,其中包含带有“提交”或“拒绝”按钮的提交摘要列表。

4

1 回答 1

2

没有开箱即用的方法来做到这一点(至少不是内置于 Django),因此您需要自己创建逻辑,这应该非常简单。一些需要考虑的方法:

  1. 有第二个模型/表格来保存您的表单,然后为审阅功能创建一个视图,将任何已批准的记录复制到第一个表格中。

  2. 避免使用第二个模型/表,并在模型/表中添加一个approved = BoolField(default=False)字段。设置objects为过滤的自定义管理器,default=True因此您的其余代码默认情况下只会看到已批准的记录。让第二个经理做相反的事情,即过滤未批准的记录。使用第二个管理器,为审核功能创建一个视图,该视图会翻转approvedTrue任何获得批准的内容。

  3. 如果使用上述第二种方法,您想使用 Django 的管理站点进行审查,请为您的模型创建一个代理,该代理默认使用第二个管理器来过滤未批准的记录。然后,您可以使用管理员的内联显示和编辑功能一目了然地查看记录并根据需要单击批准。

于 2012-08-24T17:22:43.603 回答