在如何将 django-reversion 添加到使用 django 和 django-rest 框架开发的应用程序中,我添加了以下函数来获取对象的历史记录
from django.http import HttpResponse
from reversion.models import Version
import json
def history_list(request):
history_list = Version.objects.all().order_by('-revision__date_created')
data = []
for i in history_list:
data.append({
'date_time': str(i.revision.date_created),
'user': str(i.revision.user),
'object': i.object_repr,
'type': i.content_type.name,
'comment': i.revision.comment
})
data_ser = json.dumps(data)
return HttpResponse(data_ser, content_type="application/json")
在如何将 django-reversion 添加到使用 django 和 django-rest 框架开发的应用程序的 urls.py 中,我添加了一条历史路径。
当我访问 127.0.0.1:8000/history 时,我得到的 json 数据为
[{"object": "someobject", "user": "someuseruser", "type": "sometype", "comment": "Changed name.", "date_time": "2015-03-02 18:04:58.368650+00:00"}]
执行流程:当我访问 127.0.0.1:8000/admin 并将上述对象的值更改为“其他对象”时。当我刷新 127.0.0.1:8000/历史。我又得到了一个 json 字段
[{"object": "otherobject", "user": "someuseruser", "type": "sometype", "comment": "Changed name.", "date_time": "2015-03-02 18:04:58.368650+00:00"}]
下面是我在历史函数中添加一个额外字段时遇到的问题:
我想在历史函数的上述迭代中再包含一个字段。像 previous_object: " " 来获取对象名称,即使在更改名称之后也是如此。例如:- 从 127.0.0.1:8000/admin 我将对象名称从“apple”更改为“orange”。
当我访问历史路线 127.0.0.1:8000/history
[{"object": "apple", "object_before_changed": ""null": "someuseruser", "type": "sometype", "comment": "Changed name.", "date_time": "2015-03-02 18:00:58.368650+00:00"}]
我应该能够看到如下
[{"object": "orange", "object before_changed": ""apple": "someuseruser", "type": "sometype", "comment": "Changed name.", "date_time": "2015-03-02 18:04:58.368650+00:00"}]