diff --git a/apps/audits/handler.py b/apps/audits/handler.py index d5f39dc7a..27b116488 100644 --- a/apps/audits/handler.py +++ b/apps/audits/handler.py @@ -4,7 +4,6 @@ from django.db import transaction from django.core.cache import cache from django.utils.translation import ugettext_lazy as _ -from users.models import User from common.utils import get_request_ip, get_logger from common.utils.timezone import as_current_tz from common.utils.encode import Singleton diff --git a/apps/audits/utils.py b/apps/audits/utils.py index d069a6d26..27cdd6e28 100644 --- a/apps/audits/utils.py +++ b/apps/audits/utils.py @@ -1,13 +1,15 @@ import codecs import copy import csv + from itertools import chain +from datetime import datetime from django.db import models from django.http import HttpResponse +from common.utils.timezone import as_current_tz from common.utils import validate_ip, get_ip_city, get_logger -from settings.serializers import SettingsSerializer from .const import DEFAULT_CITY logger = get_logger(__name__) @@ -70,6 +72,8 @@ def _get_instance_field_value( f.verbose_name = 'id' elif isinstance(value, (list, dict)): value = copy.deepcopy(value) + elif isinstance(value, datetime): + value = as_current_tz(value).strftime('%Y-%m-%d %H:%M:%S') elif isinstance(f, models.OneToOneField) and isinstance(value, models.Model): nested_data = _get_instance_field_value( value, include_model_fields, model_need_continue_fields, ('id',) diff --git a/apps/common/local.py b/apps/common/local.py index 947ae3d6b..19b00537e 100644 --- a/apps/common/local.py +++ b/apps/common/local.py @@ -1,7 +1,7 @@ from werkzeug.local import Local thread_local = Local() -encrypted_field_set = set() +encrypted_field_set = {'password'} def _find(attr):