@Tiran_94
Python Django

Как в Django imagefield сделать динамический путь?

Столкнулся с проблемой, не могу динамически назначить путь
в models.py
class PhotoAlbom(models.Model):
...
photo = models.ImageField()
в views.py
photo = request.FILES['file']

как назначить динамически путь photo в views.py?

В django недавно, много не понимаю
Заранее спасибо
  • Вопрос задан
  • 970 просмотров
Пригласить эксперта
Ответы на вопрос 2
intelligence
@intelligence
Путь сохранения файла?
создаете файл functions.py например
from django.utils.deconstruct import deconstructible
import uuid
import os

@deconstructible
class PathAndRename(object):

    def __init__(self, sub_path):
        self.path = sub_path

    def __call__(self, instance, filename):
        ext = filename.split('.')[-1]
        # set filename as random string
        filename = '{}.{}'.format(uuid.uuid4(), ext)
        # return the whole path to the file
        return os.path.join(self.path, filename)


Затем в models.py
from .functions import PathAndRename

upload_photo = PathAndRename("images/photos")
class PhotoAlbom(models.Model):
    photo = models.ImageField(upload_to=upload_photo)

Параметры в функцию можно передавать любые после правки.
Или простой путь:
photo = models.ImageField(upload_to='documents/%Y/%m/%d')
Ответ написан
sim3x
@sim3x
<img src="{{ photomodel.photo.url }}">
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы