我有一个函数来显示版本对象的历史记录列表,我在https://github.com/praneethkumarpidugu/django-reversion/blob/master/rev_history/views.py#L1的公共存储库中有一个特殊的.py文件:
from django.http import HttpResponse
from reversion.models import Version
#from django.contrib.admin.models import LogEntry
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")
为了更改对象实体,我访问了admin页面127.0.0.1:8000/admin 我把一个表示的布尔字段从true改为false。在
现在,我来到历史页面127.0.0.1:8000/历史
我看到json数据如下:
^{pr2}$可能存在的解决方案:我希望将注释拆分为以前的“值”:“True”,“new_value”:“False”,“field”:“is_active”。在
我对解决方案的研究我深入研究了reversion的修订类/模型.py为了查看是否有任何额外的争论来显示字段和值,但据我所知,我无法找到在哪里可以找到字段和值以供注释的线索。以下是修订版的意见供参考
comment = models.TextField(blank=True,
verbose_name=_("comment"),
help_text="A text comment on this revision.")
表示字段的解决方案:这可能看起来有点傻,但我刚刚侵入了我自己的评论数据,将字段表示为
'field': i.revision.comment.split(' ')[-1]
但是我仍然需要得到字段的值,这些值是更改后的原始值和新值。在
我想如果你能拯救弗菲尔德迪克特对实际的和以前的(在提交版本的同一个地方)进行比较,然后将版本更改保存在另一个模型中,您可以实现您想要的。在
也许这个应用程序可以帮助你。 https://github.com/jedie/django-reversion-compare
我希望我能正确理解这个问题,这里有个半生不熟的解决方案:
没有考虑过性能开销,但这应该能解决问题。在
希望这有帮助。在
相关问题 更多 >
编程相关推荐