diff --git a/apps/audits/handler.py b/apps/audits/handler.py index 5c069ac09..a304ba7c1 100644 --- a/apps/audits/handler.py +++ b/apps/audits/handler.py @@ -103,8 +103,6 @@ class OperatorLogHandler(metaclass=Singleton): return '' if isinstance(value[0], str): return ','.join(value) - if isinstance(value[0], dict) and value[0].get('value') and isinstance(value[0]['value'], str): - return ','.join([str(i['value']) for i in value]) return json.dumps(value) def __data_processing(self, dict_item, loop=True): diff --git a/apps/audits/utils.py b/apps/audits/utils.py index 239dcfa3f..33e0d9639 100644 --- a/apps/audits/utils.py +++ b/apps/audits/utils.py @@ -6,6 +6,7 @@ from django.db import models from common.utils.timezone import as_current_tz from common.utils import validate_ip, get_ip_city, get_logger +from common.db.fields import RelatedManager from .const import DEFAULT_CITY logger = get_logger(__name__) @@ -53,6 +54,8 @@ def _get_instance_field_value( value = dict(copy.deepcopy(value)) elif isinstance(value, datetime): value = as_current_tz(value).strftime('%Y-%m-%d %H:%M:%S') + elif isinstance(value, RelatedManager): + value = value.value 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',)