diff --git a/apps/audits/handler.py b/apps/audits/handler.py index 7aff4c427..9d521824b 100644 --- a/apps/audits/handler.py +++ b/apps/audits/handler.py @@ -183,7 +183,7 @@ class OperatorLogHandler(metaclass=Singleton): return data def create_or_update_operate_log( - self, action, resource_type, resource=None, + self, action, resource_type, resource=None, resource_display=None, force=False, log_id=None, before=None, after=None, object_name=None ): @@ -192,7 +192,9 @@ class OperatorLogHandler(metaclass=Singleton): return remote_addr = get_request_ip(current_request) - resource_display = self.get_resource_display(resource) + if resource_display is None: + resource_display = self.get_resource_display(resource) + resource_id = resource.id if resource is not None else '' before, after = self.data_processing(before, after) if not force and not any([before, after]): # 前后都没变化,没必要生成日志,除非手动强制保存 @@ -200,9 +202,10 @@ class OperatorLogHandler(metaclass=Singleton): data = { 'id': log_id, "user": str(user), 'action': action, - 'resource_type': str(resource_type), 'resource': resource_display, + 'resource_type': str(resource_type), + 'resource_id': resource_id, 'resource': resource_display, 'remote_addr': remote_addr, 'before': before, 'after': after, - 'org_id': get_current_org_id(), 'resource_id': str(resource.id) + 'org_id': get_current_org_id(), } data = self._activity_handle(data, object_name, resource=resource) with transaction.atomic(): diff --git a/apps/common/views/mixins.py b/apps/common/views/mixins.py index 39b146b3f..b0c38dee2 100644 --- a/apps/common/views/mixins.py +++ b/apps/common/views/mixins.py @@ -66,11 +66,11 @@ class RecordViewLogMixin: def list(self, request, *args, **kwargs): response = super().list(request, *args, **kwargs) - resource = self.get_resource_display(request) + resource_display = self.get_resource_display(request) resource_type = self.model._meta.verbose_name create_or_update_operate_log( self.ACTION, resource_type, force=True, - resource=resource + resource_display=resource_display ) return response @@ -78,7 +78,6 @@ class RecordViewLogMixin: response = super().retrieve(request, *args, **kwargs) resource_type = self.model._meta.verbose_name create_or_update_operate_log( - self.ACTION, resource_type, force=True, - resource=self.get_object() + self.ACTION, resource_type, force=True, resource=self.get_object() ) return response