diff --git a/tournaments/migrations/0126_image_club_alter_image_event.py b/tournaments/migrations/0126_image_club_alter_image_event.py new file mode 100644 index 0000000..f124bc9 --- /dev/null +++ b/tournaments/migrations/0126_image_club_alter_image_event.py @@ -0,0 +1,24 @@ +# Generated by Django 5.1 on 2025-05-20 09:46 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tournaments', '0125_tournament_unregister_delta_in_hours'), + ] + + operations = [ + migrations.AddField( + model_name='image', + name='club', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='images', to='tournaments.club'), + ), + migrations.AlterField( + model_name='image', + name='event', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='images', to='tournaments.event'), + ), + ] diff --git a/tournaments/models/image.py b/tournaments/models/image.py index 227cbcd..d4a04a4 100644 --- a/tournaments/models/image.py +++ b/tournaments/models/image.py @@ -2,7 +2,7 @@ from django.db import models import uuid import os from django.utils.timezone import now -from .event import Event +from .event import Event, Club def image_upload_path(instance, filename): """Generate a unique file path for the uploaded image.""" @@ -11,9 +11,13 @@ def image_upload_path(instance, filename): # Create a unique filename using UUID unique_filename = f"{uuid.uuid4().hex}.{ext}" - # Determine the folder based on the event - folder = f"event_{instance.event.id}" - + if instance.event: + # Determine the folder based on the event + folder = f"event_{instance.event.id}" + elif instance.club: + folder = f"club_{instance.club.id}" + else: + folder = f"unknown" # Return the complete upload path return os.path.join('images', folder, unique_filename) @@ -26,7 +30,8 @@ class Image(models.Model): uploaded_at = models.DateTimeField(default=now) # Relation to event model - event = models.ForeignKey(Event, on_delete=models.CASCADE, related_name='images') + event = models.ForeignKey(Event, null=True, blank=True, on_delete=models.CASCADE, related_name='images') + club = models.ForeignKey(Club, null=True, blank=True, on_delete=models.CASCADE, related_name='images') # Image type for filtering IMAGE_TYPES = (