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

@ -1748,7 +1748,11 @@ class EntryViewSet(viewsets.ModelViewSet):
else:
logger.info("External system registered successfully")
except Exception as e:
logger.exception(f"Error creating Entry: {str(e)}")
logger.error(f"Error creating Entry: {e}")
if hasattr(e, 'message_dict'):
logger.error(f"Validation details: {e.message_dict}")
# perform_createで例外を発生させて、createメソッドでキャッチ
raise e
def create(self, request, *args, **kwargs):
@ -1768,7 +1772,26 @@ class EntryViewSet(viewsets.ModelViewSet):
headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
except DjangoValidationError as e:
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
# バリデーションエラーの詳細をログに記録
error_details = e.message_dict if hasattr(e, 'message_dict') else str(e)
logger.error(f"Entry validation error: {error_details}")
# ユーザーフレンドリーなエラーメッセージを作成
if '__all__' in error_details and '男性のみ参加可能' in str(error_details):
error_message = "選択されたカテゴリーは男性のみ参加可能です。適切なカテゴリーを選択してください。"
elif '__all__' in error_details and '女性のみ参加可能' in str(error_details):
error_message = "選択されたカテゴリーは女性のみ参加可能です。適切なカテゴリーを選択してください。"
else:
error_message = str(e)
return Response({"error": error_message}, status=status.HTTP_400_BAD_REQUEST)
except Exception as e:
# その他のエラー
logger.exception(f"Unexpected error creating Entry: {str(e)}")
return Response(
{"error": "エントリー作成中に予期しないエラーが発生しました。しばらく後に再試行してください。"},
status=status.HTTP_500_INTERNAL_SERVER_ERROR
)
def register_team(self, zekken_number, event_code, team_name, category_name, password):