feat: mlog view 暂时性能优化
This commit is contained in:
parent
cd4b686f11
commit
894142712f
|
@ -39,6 +39,8 @@ from django.db.models import Count
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from apps.utils.lock import lock_model_record_d_method
|
from apps.utils.lock import lock_model_record_d_method
|
||||||
from apps.em.models import Equipment
|
from apps.em.models import Equipment
|
||||||
|
from django.db.models import Prefetch
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
@ -188,7 +190,8 @@ class MlogViewSet(CustomModelViewSet):
|
||||||
select_related_fields = ['create_by', 'update_by', 'mtask', 'mtaskb',
|
select_related_fields = ['create_by', 'update_by', 'mtask', 'mtaskb',
|
||||||
'handle_user', 'handle_user_2', 'equipment', 'mgroup__belong_dept',
|
'handle_user', 'handle_user_2', 'equipment', 'mgroup__belong_dept',
|
||||||
'equipment_2', 'material_in', 'material_out', 'route__routepack', 'submit_user',
|
'equipment_2', 'material_in', 'material_out', 'route__routepack', 'submit_user',
|
||||||
'supplier', 'ticket', 'mgroup__process', 'test_user', 'handle_leader', 'test_user', 'team']
|
'supplier', 'ticket', 'mgroup__process', 'test_user', 'handle_leader', 'test_user', 'team',
|
||||||
|
'material_in__process', 'material_out__process']
|
||||||
prefetch_related_fields = ['handle_users',
|
prefetch_related_fields = ['handle_users',
|
||||||
'material_outs', 'b_mlog', 'equipments']
|
'material_outs', 'b_mlog', 'equipments']
|
||||||
filterset_class = MlogFilter
|
filterset_class = MlogFilter
|
||||||
|
@ -206,6 +209,36 @@ class MlogViewSet(CustomModelViewSet):
|
||||||
if self.request.query_params.get('with_mlogb', False):
|
if self.request.query_params.get('with_mlogb', False):
|
||||||
return MlogSerializer
|
return MlogSerializer
|
||||||
return super().get_serializer_class()
|
return super().get_serializer_class()
|
||||||
|
|
||||||
|
# def list(self, request, *args, **kwargs):
|
||||||
|
# from django.db import connection
|
||||||
|
# from django.conf import settings
|
||||||
|
# # 清空之前的查询记录
|
||||||
|
# connection.queries_log.clear()
|
||||||
|
|
||||||
|
# # 调用父类的 list 方法
|
||||||
|
# response = super().list(request, *args, **kwargs)
|
||||||
|
|
||||||
|
# # 获取执行的 SQL 查询
|
||||||
|
# queries = connection.queries
|
||||||
|
# sql_queries = []
|
||||||
|
|
||||||
|
# for query in queries:
|
||||||
|
# sql_queries.append({
|
||||||
|
# 'sql': query['sql'],
|
||||||
|
# 'time': query['time'],
|
||||||
|
# 'params': query.get('params', [])
|
||||||
|
# })
|
||||||
|
|
||||||
|
# # 将 SQL 信息添加到响应中(仅在调试模式)
|
||||||
|
# if settings.DEBUG:
|
||||||
|
# response.data['_debug'] = {
|
||||||
|
# 'sql_queries': sql_queries,
|
||||||
|
# 'total_queries': len(queries),
|
||||||
|
# 'total_time': sum(float(q['time']) for q in queries)
|
||||||
|
# }
|
||||||
|
|
||||||
|
# return response
|
||||||
|
|
||||||
def add_info_for_list(self, data):
|
def add_info_for_list(self, data):
|
||||||
czx_dict = {}
|
czx_dict = {}
|
||||||
|
|
Loading…
Reference in New Issue