from django.db import models import logging logger = logging.getLogger("root") def group_based_upload_to(instance, filename): logger.info(instance) return "files/image/{}/{}/{}".format( type(instance).__name__.lower(), instance.id, filename ) class Image(models.Model): file = models.ImageField(upload_to=group_based_upload_to) alt = models.CharField(max_length=255) title = models.CharField(max_length=255) def __str__(self): return self.title class Element3D(models.Model): model_file = models.FileField(upload_to=group_based_upload_to) name = models.CharField(max_length=255) description = models.TextField() def __str__(self): return self.name class ClickableArea(models.Model): name = models.CharField(max_length=255) description = models.TextField() object_name = models.CharField(max_length=255) target = models.ForeignKey(Element3D, on_delete=models.CASCADE, related_name='clickable_areas') def __str__(self): return self.name