diff --git a/apps/monitor/services.py b/apps/monitor/services.py index 1781a931..a5128b54 100644 --- a/apps/monitor/services.py +++ b/apps/monitor/services.py @@ -28,18 +28,23 @@ def create_auditlog(action: str, instance, val_new: dict, val_old: dict = None, 'create_by', 'update_by', 'create_time', 'update_time', 'id']) difference = [] has_changed = False - change_user_l = change_user if change_user else instance.update_by - change_time_l = change_time if change_time else instance.update_time + if action == 'create': has_changed = True change_user_l = change_user if change_user else instance.create_by change_time_l = change_time if change_time else instance.create_time elif action == 'delete': has_changed = True + change_user_l = change_user if change_user else instance.update_by + change_time_l = change_time if change_time else instance.update_time else: - has_changed = True - change_user_l = change_user - change_time_l = change_time + if action == 'update': + change_user_l = change_user if change_user else instance.update_by + change_time_l = change_time if change_time else instance.update_time + else: + has_changed = True + change_user_l = change_user + change_time_l = change_time for k, v in val_new.items(): if k not in ignore_fields: if k not in val_old: @@ -48,6 +53,8 @@ def create_auditlog(action: str, instance, val_new: dict, val_old: dict = None, elif not compare_values(val_new.get(k), val_old.get(k), ignore_order=True): difference.append( {'field': k, 'action': 'update', 'val_old': val_old[k], 'val_new': v}) + if action == 'update' and difference: + has_changed = True if has_changed: AuditLog.objects.create( action=action,