dauren101
@dauren101
Python, Django ,Vue.js

Django загрузка картинки в папку по id записи?

В админке создал поле для загрузки изображения. все нормально загружается, но я хочу чтобы изображения загружались в папку, которая генерировалась бы по id записи.
Т.е создаю новую запись в админке, создается папка с id этой записи и туда сохраняются картинки
  • Вопрос задан
  • 972 просмотра
Пригласить эксперта
Ответы на вопрос 1
@deliro
Ты можешь у ImageField (также, как и FileField) переопределить поле upload_to и присвоить ему функцию, принимающую два аргумента - обект модели и имя файла. У тебя получится что-то вроде этого:

import os
from django.conf import settings
def get_image_path(instance, filename):
    # Но так никогда нельзя делать!
    return os.path.join('images', str(instance.pk), filename)


А вот так будет лучше:
import os
from uuid import uuid1
def get_image_path(instance, filename):
    result = os.path.join('images', str(instance.pk), uuid1().hex)
    if '.' in filename:
        result = os.path.join(result, filename.split('.')[-1])
    return result
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы