@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"
Возможно, я вообще не правильно сохраняю картинку и это нужно делать другим способом.
  • Вопрос задан
  • 812 просмотров
Решения вопроса 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 формирует путь из директорий и имени файла, но имя отдельно взятой папки или файла им формировать не нужно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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