mirror of
https://github.com/jumpserver/jumpserver.git
synced 2026-01-19 00:55:18 +00:00
* perf: 重构 ticket * perf: 优化 tickets * perf: 暂存 * perf: 建立 ticket model * perf: 暂存一下 * perf: 修改 tickets * perf: 修改 import * perf: 修改model * perf: 暂存一波 * perf: 修改... * del process_map field * 工单重构 * 资产 应用对接前端 * perf: 修改 ticket * fix: bug * 修改迁移文件 * 添加其他api * 去掉process_map * perf: 优化去掉 signal * perf: 修改这里 * 修改一点 * perf: 修改工单 * perf: 修改状态 * perf: 修改工单流转 * step 状态切换 * perf: 修改 ticket open * perf: 修改流程 * perf: stash it * 改又改 * stash it * perf: stash * stash * migrate * perf migrate * 调整一下 * 修复bug * 修改一点 * 修改一点 * 优化一波 * perf: ticket migrations Co-authored-by: ibuler <ibuler@qq.com> Co-authored-by: feng626 <1304903146@qq.com>
31 lines
965 B
Python
31 lines
965 B
Python
import json
|
|
import uuid
|
|
import logging
|
|
from datetime import datetime
|
|
|
|
from django.utils.translation import ugettext_lazy as _
|
|
from django.db import models
|
|
from django.conf import settings
|
|
|
|
lazy_type = type(_('ugettext_lazy'))
|
|
|
|
|
|
class ModelJSONFieldEncoder(json.JSONEncoder):
|
|
""" 解决一些类型的字段不能序列化的问题 """
|
|
|
|
def default(self, obj):
|
|
str_cls = (models.Model, lazy_type, models.ImageField, uuid.UUID)
|
|
if isinstance(obj, str_cls):
|
|
return str(obj)
|
|
elif isinstance(obj, datetime):
|
|
return obj.strftime(settings.DATETIME_DISPLAY_FORMAT)
|
|
elif isinstance(obj, (list, tuple)) and len(obj) > 0 \
|
|
and isinstance(obj[0], models.Model):
|
|
return [str(i) for i in obj]
|
|
else:
|
|
try:
|
|
return super().default(obj)
|
|
except TypeError:
|
|
logging.error('Type error: ', type(obj))
|
|
return str(obj)
|