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