Django admin 로그 관리
3919 단어 django
django의 관리 모델 때문에 다음과 같은 방법이 사용됩니다.
class ApplicationAdmin(admin.ModelAdmin):
list_display = ('id','key','name', 'description', 'type','apphandler','argument','create','modified')
search_fields = ('key','name','description')
admin.site.register(Application,ApplicationAdmin)
실제 로그 기록 논리는 부모 모델Admin에서 이루어지는데 구체적으로django.conrtrib.admin.options에서
def log_addition(self, request, object):
"""
Log that an object has been successfully added.
The default implementation creates an admin LogEntry object.
"""
from django.contrib.admin.models import LogEntry, ADDITION
LogEntry.objects.log_action(
user_id = request.user.pk,
content_type_id = ContentType.objects.get_for_model(object).pk,
object_id = object.pk,
object_repr = force_unicode(object),
action_flag = ADDITION
)
def log_change(self, request, object, message):
"""
Log that an object has been successfully changed.
The default implementation creates an admin LogEntry object.
"""
from django.contrib.admin.models import LogEntry, CHANGE
LogEntry.objects.log_action(
user_id = request.user.pk,
content_type_id = ContentType.objects.get_for_model(object).pk,
object_id = object.pk,
object_repr = force_unicode(object),
action_flag = CHANGE,
change_message = message
)
def log_deletion(self, request, object, object_repr):
"""
Log that an object will be deleted. Note that this method is called
before the deletion.
The default implementation creates an admin LogEntry object.
"""
from django.contrib.admin.models import LogEntry, DELETION
LogEntry.objects.log_action(
user_id = request.user.id,
content_type_id = ContentType.objects.get_for_model(self.model).pk,
object_id = object.pk,
object_repr = object_repr,
action_flag = DELETION
)
다음 단계에 무엇을 했는지 여러분이 보시면 알 수 있습니다. 직접 복사하거나 차단하고 메시지 정보를 수정하세요.
class DemoAdmin(admin.ModelAdmin):
list_display = ('id', 'name', 'description', 'create','modified')
search_fields = ('name', 'description',)
def log_change(self, request, object, message):
newmessage= "xxxx" // xxx
super(SpaceAdmin, self).log_change(request, object, newmessage)
class Meta:
pass
class Admin:
이렇게 하면 로그 개작을 완성할 수 있거나 로그를 직접 불러도 문제없다.
권장 읽기:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#ref-contrib-admin
http://www.ibm.com/developerworks/cn/opensource/os-django-admin/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.