Я не могу переопределить метод create, на serializers.ModelSerializer
Я уверяю вас, что перед тем, как писать, я обыскал весь интернет.
Моя проблема заключается в следующем:
Я пытаюсь добавить поле на ModelSerializer модели, поле передается из представления и я пытаюсь добавить его в ответ. Я пытался переопределить create (), но он даже не вписывается в него
сериализаторы:
view
class MetricsListV2(APIView):
# metrics/all/
permission_classes = (permissions.IsAuthenticated,)
@swagger_auto_schema(responses={200: companies_v2_serializer.MetricsV2Serializer()})
def get(self, request):
try:
date_from = request.query_params["date_from"]
date_to = request.query_params["date_to"]
except Exception:
return Response(
{"status": "date_from or date_to required fields error"},
status=status.HTTP_500_INTERNAL_SERVER_ERROR,
)
date_from = datetime.datetime.strptime(date_from, '%Y-%m-%d')
date_to = datetime.datetime.strptime(date_to, '%Y-%m-%d')
team = request.query_params.get("team", None)
category = request.query_params.get("category", None)
store = request.query_params.get("store", None)
social_page = request.query_params.get("social_page", None)
ticket_aggregation = ticketaggregation_timeline(
date_from=date_from,
date_to=date_to,
team=team,
store=store,
social_page=social_page,
category=category,
)
if ticket_aggregation == None:
return Response(
{"status": "Aggregation data not found"},
status=status.HTTP_404_NOT_FOUND,
)
ticket_h = TicketHistoryAggregation.objects.filter(
aggregation_date__gte=date_from,
aggregation_date__lte=date_to,
category=None,
team=None
).aggregate(
ticket_closed=Sum(F(("ticket_closed"))),
ticket_closed_w_time=Avg(F("ticket_closed_w_time")),
ticket_closed_time=Avg(F("ticket_closed_time")),
)
serializer = companies_v2_serializer.MetricsV2Serializer(ticket_aggregation)
#--------- this field total_managed_today
serializer.data['total_managed_today'] = ticket_h.get('ticket_closed', 0)
serializer.data['avr_management_work_time']['today_closed']=ticket_h.get('ticket_closed_w_time', 0)
serializer.data['avr_management_time']['today_closed']=ticket_h.get('ticket_closed_time', 0)
# log.info('controllo serializer dopo')
# log.info(serializer)
return Response(serializer.data)
мой целью является добавить total_managed_today в ответ, как вы можете видеть, я не могу создать SerializerMethodField, но я даже не могу изменить из create override, потому что я не могу войти в систему, никаких логов или ошибок. Вы можете мне помочь?