33 lines
885 B
Python
33 lines
885 B
Python
from django.db import models
|
|
from object.models import Scene3D
|
|
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 Item(models.Model):
|
|
name = models.CharField()
|
|
slug = models.SlugField(unique=True)
|
|
images = models.ManyToManyField(Image)
|
|
scene_3d = models.ForeignKey(Scene3D, on_delete=models.RESTRICT)
|
|
is_front = models.BooleanField()
|
|
|
|
def __str__(self):
|
|
return f"{self.id} {self.name} {'Главная' if self.is_front else ''}"
|