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()
|