Задать вопрос
@Quirel

Как правильно сохранить картинку из url в django models.ImageField?

django 1.11
Кусок кода из admin.py
def save_model(self, request, obj, form, change):
    r = requests.get(url, stream=True)
    r.raw.decode_content = True
    obj.image.save(os.path.join('img/', slugify(unidecode(obj.title)), '.jpg'), r.raw)
    obj.save()

И оно даже работает, за исключением того, что удаляется точка из имени файла: т.е. получаю что то вроде "imagejpg" вместо "image.jpg"
Возможно, я вообще не правильно сохраняю картинку и это нужно делать другим способом.
  • Вопрос задан
  • 829 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Assargin
@Assargin
Перед ответом смотрю наличие ✔ в ваших вопросах
Сохранение картинки работает, а вот формирование пути сделано с ошибкой
def save_model(self, request, obj, form, change):
    r = requests.get(url, stream=True)
    r.raw.decode_content = True
    obj.image.save(os.path.join('img', '{}.jpg'.format(slugify(unidecode(obj.title)))), r.raw)
    obj.save()

os.path.join формирует путь из директорий и имени файла, но имя отдельно взятой папки или файла им формировать не нужно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Strikt Москва
от 100 000 до 180 000 ₽
ITK academy Саратов
от 75 000 ₽
Sim-Ba Pay Санкт-Петербург
от 180 000 ₽