forked from pythonafrica/pycon-africa
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathseeder.py
46 lines (38 loc) · 1.33 KB
/
seeder.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import os
import django
from django.db import IntegrityError
from django.core.management import call_command
from home.models import EventYear
from cms.models import Page
# Set up the Django environment
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pyconafrica.settings")
django.setup()
# Handle migrations
try:
call_command("makemigrations")
call_command("migrate")
print("Migrations completed successfully.")
except Exception as e:
print(f"An error occurred while running migrations: {e}")
# Create EventYear and Pages
try:
event_year, created = EventYear.objects.get_or_create(
year=2025,
defaults={"home_info": "This is the 2025 event year", "template_path": "home/2025/home.html"}
)
if created:
print("Event Year created successfully")
else:
print(f"Event Year {event_year.year} already exists.")
page, page_created = Page.objects.get_or_create(
page_name="home",
defaults={"page_title": "Home", "content": "This is the home page", "event_year": event_year}
)
if page_created:
print("Page created successfully")
else:
print(f"Page '{page.page_name}' already exists for event year {event_year.year}.")
except IntegrityError as e:
print(f"Database error: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")