2009-09-09 2 views
1

django가 항목을 추가 한 사용자와 같은 사용자 작업을 추적하고 있다는 것을 알고있는 것처럼 사용자가 자신의 Model 객체를 추가하기 위해 django admin을 사용합니다. 객체의 경우, 관리자 패널 외부의 사용자 정의보기에서 가산기의 사용자 이름을 표시해야합니다.객체 히스토리 가져 오기

이 데이터를 가져 오거나 검색하는 방법은 무엇입니까?

건배

+0

다른 모델에 동일한 id를 가진 객체가 포함될 수 있기 때문에 id가 해당 특정 모델의 id와 일치하는지 확인하는 중요한 편집 작업을했습니다. –

답변

2

이 단지 밑그림하지만 당신이보기에 대해 필요에 꽤 근접해야합니다 : 템플릿에서 다음

from django.contrib.admin.models import LogEntry, ADDITION 

def your_view(request): 
    ... 
    # This is your object that was modified 
    my_obj = ... 
    log_entry = LogEntry.objects.filter(
     object_id=my_obj.id, 
     action_flag=ADDITION, 
     content_type__id__exact=ContentType.objects.get_for_model(MyModel).id) 
    ... 

:

{{ log_entry.user.username }} 
+0

내 항목은 여러 작업을 수행 할 수 있기 때문에 유망 해 보입니다. 어떻게 "추가"작업을 검색 할 수 있습니까? "django_admin_log"의 데이터베이스 구조를 확인한 후 "action_flag"가 작업을 유지하는 것처럼 보입니다. – Hellnar

+0

django.contrib.admin.models에서 가져 오기 ADDITION 필터 (..., action_flag = ADDITION) –

+0

ADDITION 필터를 포함하는 수정 된 답변 –

0

당신이 만약 ' 위에서 언급 한 것 이상으로 추가 기능을 추가하려는 경우 django-reversion이라는 응용 프로그램을 사용했습니다.이 응용 프로그램은 로그 액세스 가능 외에도 c (HTML을 사용하거나 사용하지 않고 DIFF를 생성하는데도 사용할 수 있습니다.)