Из-за проблем с миграцией изменен подход генерации имени загружаемых файлов

Этот коммит содержится в:
Глеб Иваницкий 2024-09-22 18:33:28 +03:00
родитель 3bc7837a5c
Коммит 5be1fe2b55

Просмотреть файл

@ -1,20 +1,25 @@
import os
import uuid
from django.db.models import Model
from django.db.models import OneToOneField, ManyToManyField, CASCADE
from django.db.models import CharField, TextField, IntegerField, DecimalField, BooleanField, ImageField
from django.utils.deconstruct import deconstructible
def upload_to(path, /):
def wrapper(instance, filename):
@deconstructible
class UploadTo:
def __init__(self, path):
self.path = path
def __call__(self, instance, filename):
return os.path.join(
path,
self.path,
'%s.%s' % (
instance.pk,
uuid.uuid4(),
filename.split('.')[-1],
),
)
return wrapper
class RoomImage(Model):
@ -29,7 +34,7 @@ class RoomImage(Model):
)
image = ImageField(
verbose_name='Изображение',
upload_to=upload_to('media/rooms/images'),
upload_to=UploadTo('media/rooms/images'),
)
def __str__(self):
@ -48,7 +53,7 @@ class RoomPanorama(Model):
)
image = ImageField(
verbose_name='Изображение',
upload_to=upload_to('media/rooms/panoramas'),
upload_to=UploadTo('media/rooms/panoramas'),
)
def __str__(self):
@ -105,3 +110,6 @@ class Room(Model):
verbose_name='Доступна для аренды',
default=True,
)
def __str__(self):
return self.name