92 lines
3.4 KiB
Python
92 lines
3.4 KiB
Python
#!/usr/bin/env python
|
|
"""
|
|
FC岐阜イベント用のエントリーデータ作成スクリプト
|
|
既存のチームをFC岐阜イベントにエントリーして、ゼッケン番号表示を可能にする
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
import django
|
|
from datetime import datetime
|
|
|
|
if __name__ == '__main__':
|
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
|
|
django.setup()
|
|
|
|
from rog.models import NewEvent2, Entry, Team, NewCategory, CustomUser
|
|
|
|
print("=== FC岐阜イベント用エントリーデータ作成 ===")
|
|
|
|
try:
|
|
# FC岐阜イベントを取得
|
|
fc_gifu_event = NewEvent2.objects.filter(event_name__icontains='FC岐阜').first()
|
|
if not fc_gifu_event:
|
|
print("❌ FC岐阜イベントが見つかりません")
|
|
sys.exit(1)
|
|
|
|
print(f"✅ FC岐阜イベント確認: {fc_gifu_event.event_name} (ID: {fc_gifu_event.id})")
|
|
|
|
# カテゴリを取得または作成
|
|
category, created = NewCategory.objects.get_or_create(
|
|
category_name="一般",
|
|
defaults={'category_number': 1}
|
|
)
|
|
if created:
|
|
print(f"✅ カテゴリ作成: {category.category_name}")
|
|
else:
|
|
print(f"✅ 既存カテゴリ使用: {category.category_name}")
|
|
|
|
# 既存のチームを取得
|
|
teams = Team.objects.all()[:10] # 最初の10チームを使用
|
|
print(f"✅ 対象チーム数: {teams.count()}件")
|
|
|
|
# エントリーを作成
|
|
created_entries = 0
|
|
zekken_number = 1
|
|
|
|
for team in teams:
|
|
# 既にエントリーが存在するかチェック
|
|
existing_entry = Entry.objects.filter(
|
|
team=team,
|
|
event=fc_gifu_event
|
|
).first()
|
|
|
|
if not existing_entry:
|
|
# エントリーを作成
|
|
entry = Entry.objects.create(
|
|
team=team,
|
|
event=fc_gifu_event,
|
|
category=category,
|
|
date=fc_gifu_event.start_datetime,
|
|
owner=team.owner,
|
|
zekken_number=zekken_number,
|
|
zekken_label=f"FC岐阜-{zekken_number:03d}",
|
|
is_active=True,
|
|
hasParticipated=False,
|
|
hasGoaled=False
|
|
)
|
|
print(f" ✅ エントリー作成: {team.team_name} -> ゼッケン{zekken_number}")
|
|
created_entries += 1
|
|
zekken_number += 1
|
|
else:
|
|
print(f" ⏭️ 既存エントリー: {team.team_name}")
|
|
|
|
print(f"\n=== 作成完了 ===")
|
|
print(f"新規エントリー数: {created_entries}件")
|
|
|
|
# 確認
|
|
fc_entries = Entry.objects.filter(event=fc_gifu_event)
|
|
print(f"FC岐阜イベントの総エントリー数: {fc_entries.count()}件")
|
|
|
|
print("\n=== ゼッケン番号一覧 ===")
|
|
for entry in fc_entries.order_by('zekken_number')[:5]:
|
|
print(f"ゼッケン{entry.zekken_number}: {entry.team.team_name}")
|
|
|
|
if fc_entries.count() > 5:
|
|
print(f"... 他 {fc_entries.count() - 5}件")
|
|
|
|
except Exception as e:
|
|
print(f"❌ エラーが発生しました: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|