2015-02-02 3 views
1

복귀 객체에서 주석과 사용자에 액세스하려면 어떻게해야합니까? django 복귀 객체에서 주석과 사용자에 액세스하는 방법

내가이

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'] 

답변

2

Version 개체의 revision 속성을 확인합니다. 특정 개체 obj에 대해 Version의 목록을 가져 오는 일반적인 방법은 reversion.get_for_object(obj) 메서드를 사용하는 것입니다.

또한, 나는 터미널의 경우에 대신 인쇄

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) 

아래와 같이 귀하의 의견에서 함수를 만들기보다는 포괄적 인 포스트 http://spapas.github.io/2015/01/21/django-model-auditing/

0

@ 복귀 (및 기타 유사한 솔루션)에 대해 서면으로 작성했습니다 당신은 json이 위의 함수에 추가를 추가하여 사용자와 주석을 출력해야하는 경로를 갖고 싶습니다.

from django.http import HttpRespose 
............... 
............... 
data_ser = json.dumps(data) 
return HttpResponse(data_ser, content_type="application/json") 
관련 문제