Я создал эту функцию, чтобы скопировать изображение из django-модели в другую django-модель. Изображение должно быть сохранено с избыточностью:
def __copy_file__(from_object,to_object,field):
attr = field.attname
try:
newpath = getattr(from_object,attr).path
dot_at = newpath.rfind(".")
while os.path.exists(newpath):
newpath = newpath[:dot_at] + "_" + newpath[dot_at:]
shutil.copyfile(getattr(from_object,attr).path, newpath)
getattr(to_object,attr).save(newpath, File(open(getattr(from_object,attr).path)))
return True
except ValueError:
return False
Но эта функция создает какие-то недопустимые файлы ... Я помню, что однажды это сработало, но я проверил сегодня и больше не работает.
Редактировать: Теперь я знаю, что функция производит два изображения. Тот, который работает, а другой нет. Строка shutil.copyfile (etc)
выдает рабочую, а в присваивании getattr(to_object,attr).save (etc)
изображение снова сохраняется. Так что это проблема. Он должен быть назначен, а не скопирован снова.
Кто-нибудь может мне помочь? :)