Django:保存来自ModelForm的用户提交的数据,以便管理员审核并在以后提交

时间:2012-08-24 16:56:24

标签: django django-forms

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

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

1 个答案:

答案 0 :(得分:2)

没有一步到位的方法(至少没有内置于Django中),所以你需要自己创建逻辑,这应该非常简单。一些方法需要考虑:

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

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

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