126 lines
5.3 KiB
Python
126 lines
5.3 KiB
Python
#!/usr/bin/env python3
|
||
import os
|
||
import sys
|
||
import django
|
||
|
||
# プロジェクト設定
|
||
sys.path.append('/app')
|
||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
|
||
django.setup()
|
||
|
||
from rog.models import Entry, Team, NewEvent2, Member
|
||
from django.db.models import Q
|
||
import logging
|
||
|
||
# ログ設定
|
||
logging.basicConfig(level=logging.INFO)
|
||
logger = logging.getLogger(__name__)
|
||
|
||
def analyze_fc_gifu_data():
|
||
"""FC岐阜関連のイベント・チーム・エントリーデータを詳細分析"""
|
||
|
||
print("=== FC岐阜イベント・データ詳細分析 ===")
|
||
|
||
# 1. FC岐阜関連イベントを検索
|
||
print("\n1. FC岐阜関連イベント検索:")
|
||
fc_events = NewEvent2.objects.filter(
|
||
Q(event_name__icontains='FC岐阜') |
|
||
Q(event_name__icontains='fc岐阜') |
|
||
Q(event_name__icontains='岐阜')
|
||
)
|
||
|
||
if fc_events.exists():
|
||
for event in fc_events:
|
||
print(f" - ID:{event.id}, Name:{event.event_name}, Date:{event.event_day}")
|
||
|
||
# イベントに関連するエントリーを確認
|
||
entries = Entry.objects.filter(event=event)
|
||
print(f" 関連エントリー数: {entries.count()}")
|
||
|
||
# エントリーのチーム情報を表示
|
||
if entries.exists():
|
||
print(" エントリー詳細:")
|
||
for entry in entries[:10]: # 最初の10件のみ表示
|
||
team = entry.team
|
||
print(f" Entry ID:{entry.id}, Team ID:{team.id}, Team Name:{team.name}, Zekken:{team.zekken_number}")
|
||
|
||
# イベントに関連するチームを直接検索
|
||
teams = Team.objects.filter(event=event)
|
||
print(f" 関連チーム数: {teams.count()}")
|
||
|
||
if teams.exists():
|
||
print(" チーム詳細:")
|
||
for team in teams[:10]: # 最初の10件のみ表示
|
||
print(f" Team ID:{team.id}, Name:{team.name}, Zekken:{team.zekken_number}")
|
||
else:
|
||
print(" FC岐阜関連イベントが見つかりません")
|
||
|
||
# 2. 全イベント一覧を確認
|
||
print("\n2. 全イベント一覧:")
|
||
all_events = NewEvent2.objects.all()
|
||
for event in all_events:
|
||
entry_count = Entry.objects.filter(event=event).count()
|
||
team_count = Team.objects.filter(event=event).count()
|
||
print(f" - ID:{event.id}, Name:{event.event_name}, Date:{event.event_day}, Entry:{entry_count}, Team:{team_count}")
|
||
|
||
# 3. ゼッケン番号が設定されているチームを確認
|
||
print("\n3. ゼッケン番号付きチーム:")
|
||
teams_with_zekken = Team.objects.exclude(zekken_number__isnull=True).exclude(zekken_number='')
|
||
print(f" ゼッケン番号付きチーム数: {teams_with_zekken.count()}")
|
||
|
||
if teams_with_zekken.exists():
|
||
print(" サンプル:")
|
||
for team in teams_with_zekken[:10]:
|
||
print(f" ID:{team.id}, Name:{team.name}, Zekken:{team.zekken_number}, Event:{team.event.event_name if team.event else 'None'}")
|
||
|
||
# 4. 特定のイベントID(仮に100とする)を詳細調査
|
||
print("\n4. イベントID 100 詳細調査:")
|
||
try:
|
||
event_100 = NewEvent2.objects.get(id=100)
|
||
print(f" イベント: {event_100.event_name} ({event_100.event_day})")
|
||
|
||
# エントリー確認
|
||
entries_100 = Entry.objects.filter(event=event_100)
|
||
print(f" エントリー数: {entries_100.count()}")
|
||
|
||
# チーム確認
|
||
teams_100 = Team.objects.filter(event=event_100)
|
||
print(f" チーム数: {teams_100.count()}")
|
||
|
||
# ゼッケン番号付きチーム確認
|
||
teams_100_with_zekken = teams_100.exclude(zekken_number__isnull=True).exclude(zekken_number='')
|
||
print(f" ゼッケン番号付きチーム数: {teams_100_with_zekken.count()}")
|
||
|
||
if teams_100_with_zekken.exists():
|
||
print(" ゼッケン番号付きチーム:")
|
||
for team in teams_100_with_zekken:
|
||
print(f" ID:{team.id}, Name:{team.name}, Zekken:{team.zekken_number}")
|
||
|
||
except NewEvent2.DoesNotExist:
|
||
print(" イベントID 100は存在しません")
|
||
|
||
# 5. Entryテーブルとチームの関係確認
|
||
print("\n5. Entry-Team関係確認:")
|
||
total_entries = Entry.objects.all().count()
|
||
entries_with_teams = Entry.objects.exclude(team__isnull=True).count()
|
||
print(f" 総エントリー数: {total_entries}")
|
||
print(f" チーム関連付けありエントリー数: {entries_with_teams}")
|
||
|
||
# サンプルエントリーの詳細
|
||
print(" サンプルエントリー詳細:")
|
||
sample_entries = Entry.objects.all()[:5]
|
||
for entry in sample_entries:
|
||
team = entry.team
|
||
event = entry.event
|
||
print(f" Entry ID:{entry.id}, Team:{team.name if team else 'None'}({team.id if team else 'None'}), Event:{event.event_name if event else 'None'}({event.id if event else 'None'})")
|
||
if team:
|
||
print(f" Team Zekken:{team.zekken_number}, Team Event:{team.event.event_name if team.event else 'None'}")
|
||
|
||
if __name__ == "__main__":
|
||
try:
|
||
analyze_fc_gifu_data()
|
||
except Exception as e:
|
||
print(f"❌ エラーが発生しました: {e}")
|
||
import traceback
|
||
traceback.print_exc()
|