1

如何从回复对象访问评论和用户?

创建一个回归我用这个

with transaction.atomic():
    with reversion.create_revision():
        reversion.set_user(request.user)
        reversion.set_comment("update event")
        form.save()

现在我想访问用户并发表评论......我试过了:

import reversion
revs = reversion.models.Version.objects.all()
rev1 = revs[0]
dir(rev1)
['DoesNotExist', 'MultipleObjectsReturned', '__class__', '__delattr__',
'__dict__', '__doc__', '__eq__', '__format__', '__getattribute__',
'__hash__', '__init__', u'__module__', '__ne__', '__new__', '__reduce__',
'__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', '__unicode__', '__weakref__', '_base_manager',
'_default_manager', '_deferred', '_do_insert', '_do_update',
'_field_dict_cache', '_get_FIELD_display',
'_get_next_or_previous_by_FIELD', '_get_next_or_previous_in_order',
'_get_pk_val', '_get_unique_checks', '_meta', '_perform_date_checks',
'_perform_unique_checks', '_save_parents', '_save_table', '_set_pk_val',
'_state', 'clean', 'clean_fields', 'content_type', 'content_type_id',
'date_error_message', 'delete', 'field_dict', 'format', 'full_clean',
'id', 'object', 'object_id', 'object_id_int', 'object_repr',
'object_version', 'objects', 'pk', 'prepare_database_save', 'revert',
'revision', 'revision_id', 'save', 'save_base', 'serializable_value',
'serialized_data', 'unique_error_message', 'validate_unique']
4

2 回答 2

2

检查对象的revision属性Version。请注意,获取Version特定对象的 s列表的常用方法obj是使用reversion.get_for_object(obj)方法。

另外,我写了一篇关于回归(和其他类似解决方案)的相当全面的帖子@ http://spapas.github.io/2015/01/21/django-model-auditing/

于 2015-02-02T14:09:56.913 回答
0

在您的视图中创建一个函数,如下所示

from reversion.models import Version
import json

def history_list(request)
 history_list = Version.objects.all().oreder_by('revision_date_created')
 data = []
 for i in history_list:
  data.append({
     'user': str(i.revision.user),
     'comment': i.revision.comment
  })
print(data)

如果您想要一条路线,而不是在您的终端中打印,它应该打印用户和评论作为 json 添加附加到上述功能

from django.http import HttpRespose
...............
...............
data_ser = json.dumps(data)
return HttpResponse(data_ser, content_type="application/json")
于 2015-03-03T16:41:10.323 回答