I'm searching for a django package that would allow me to save history of my models, but only on updates. I found django-reversion, but after a quick look it doesn't seem to have such ability. Database triggers are also not an option, since my database structure is rather complicated, and writing them would be hard.
问问题
283 次
2 回答
1
我在某个时候遇到了同样的问题。
我当时的解决方案是定义两个模型:
- content:对应于网站内容的抽象。该模型是保存网站当前内容的模型。
- action:对应于网站内容变化的抽象。
content有两个指向动作的指针 (OneToOneField):第一个 edit是创建该特定内容的动作和last edit是对内容进行最后修改的动作。
action有一个指针 (OneToOneField) 指向一个演员,即做出该动作的用户,还有一个指针 (ForeignField) 指向另一个动作,即针对特定内容的前一个动作。它还有一个保存内容更改的 TextField。例如,这可以是用于数据库的类似 diff 的文本,或者只是一个腌制的字典。
在某种意义上这相当于 git 之类的版本控制,其中“动作”是对特定内容(而不是整个项目)的提交,内容是源。提交通过“先前提交”链接,并保存内容更改和用户。
于 2013-05-15T09:43:21.693 回答
0
你可以使用南。它检测模型的更改并创建允许您向前和向后同步数据库的迁移文件。
于 2013-05-15T12:16:09.843 回答