Fix Entry issue

This commit is contained in:
2025-09-06 03:21:36 +09:00
parent a24a0decb9
commit bcd0bee738
3 changed files with 207 additions and 7 deletions

View File

@ -4,6 +4,7 @@ from django.contrib.auth import get_user_model
User = get_user_model()
import uuid
from datetime import datetime
from django.db import IntegrityError
from django.conf import settings
from django.urls import reverse
@ -851,12 +852,22 @@ class EntrySerializer(serializers.ModelSerializer):
def to_representation(self, instance):
ret = super().to_representation(instance)
ret['team'] = TeamSerializer(instance.team).data
ret['event'] = NewEvent2Serializer(instance.event).data
ret['category'] = NewCategorySerializer(instance.category).data
ret['owner'] = CustomUserSerializer(instance.owner).data
# instance が辞書の場合(エラー時)は基本情報のみ返す
if isinstance(instance, dict):
return ret
# 正常な場合のみ関連オブジェクトを追加
if hasattr(instance, 'team') and instance.team:
ret['team'] = TeamSerializer(instance.team).data
if hasattr(instance, 'event') and instance.event:
ret['event'] = NewEvent2Serializer(instance.event).data
if hasattr(instance, 'category') and instance.category:
ret['category'] = NewCategorySerializer(instance.category).data
if hasattr(instance, 'owner') and instance.owner:
ret['owner'] = CustomUserSerializer(instance.owner).data
if isinstance(ret['date'], datetime):
if isinstance(ret.get('date'), datetime):
ret['date'] = ret['date'].date().isoformat()
elif isinstance(ret['date'], date):
ret['date'] = ret['date'].isoformat()