add model image for club

sync_v2
Raz 6 months ago
parent 3ce4c16ec3
commit 290092d879
  1. 24
      tournaments/migrations/0126_image_club_alter_image_event.py
  2. 15
      tournaments/models/image.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'),
),
]

@ -2,7 +2,7 @@ from django.db import models
import uuid import uuid
import os import os
from django.utils.timezone import now from django.utils.timezone import now
from .event import Event from .event import Event, Club
def image_upload_path(instance, filename): def image_upload_path(instance, filename):
"""Generate a unique file path for the uploaded image.""" """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 # Create a unique filename using UUID
unique_filename = f"{uuid.uuid4().hex}.{ext}" unique_filename = f"{uuid.uuid4().hex}.{ext}"
# Determine the folder based on the event if instance.event:
folder = f"event_{instance.event.id}" # 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 the complete upload path
return os.path.join('images', folder, unique_filename) return os.path.join('images', folder, unique_filename)
@ -26,7 +30,8 @@ class Image(models.Model):
uploaded_at = models.DateTimeField(default=now) uploaded_at = models.DateTimeField(default=now)
# Relation to event model # 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 type for filtering
IMAGE_TYPES = ( IMAGE_TYPES = (

Loading…
Cancel
Save