From fe0dc469883eee585f76403b13c5ebcc7bf063a4 Mon Sep 17 00:00:00 2001 From: sinavir Date: Thu, 4 Jul 2024 18:17:19 +0200 Subject: [PATCH] fest(inventory): Improve game image names generation --- inventory/models.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/inventory/models.py b/inventory/models.py index 82f19e1..7a51cd2 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -1,6 +1,9 @@ from django.db import models from django.urls import reverse from django.core.exceptions import ValidationError +import os +import uuid + from autoslug import AutoSlugField from website.validators import MaxFileSizeValidator from comments.models import AbstractComment @@ -36,6 +39,17 @@ class Tag(models.Model): return reverse("inventory:tag", args=(self.slug,)) +def image_uuid_path(instance, filename): + """ + Compute filename for game images as follow: + + game_img/{random_uuid}.{extension} + """ + ext = filename.split(".")[-1] + filename = "%s.%s" % (uuid.uuid4(), ext) + return os.path.join("uploads/logos", filename) + + class Game(models.Model): title = models.CharField(verbose_name="Nom de l'outil", max_length=256, unique=True) slug = AutoSlugField(populate_from="title", unique=True) @@ -47,7 +61,7 @@ class Game(models.Model): description = models.TextField(blank=True, verbose_name="description") image = models.ImageField( - upload_to="game_img/", + upload_to=image_uuid_path, blank=True, verbose_name="image", help_text="L'image doit peser 512 Kio au maximum",