如何在具有关系的模型(django)中实现阴影编辑(或修订)?

时间:2017-03-07 16:55:00

标签: python django database postgresql django-reversion

虽然这是django + postgresql,但答案可能是通用的sql或来自"数据库的傻瓜"书。

我们有一个包含多个相互关联模型的数据库(一对一,一对多,多对多的字段)。我们希望允许用户对数据库进行阴影编辑,并且只有在他对这些更改感到满意时才会发布。

对于单个模型,我可以使用类似django-reversions的东西,我可以用一种黑客的方式手工处理关系。但是,这会有几个副作用:

  • 不控制django的模型可能会更改,这会立即更新数据(无阴影副本)
  • 由于存储了外部关系,如果对它们进行大量编辑,事情就会变得奇怪。
  • 大量的工作'捕获' CRUD操作并将它们路由到已发布或草稿条目(如果特定用户正在编辑)
  • 发布时需要修复关系中的所有pks(更多hack-titude)

我真正喜欢的是能够做到这一点:

  • 允许一次编辑许多相关的表,通过许多REST CRUD调用,并且只在发布'
  • 之后进行更新
  • 允许回滚到以前的版本(版本控制)

有什么想法吗?

0 个答案:

没有答案