Мне нужно импортировать некоторые данные из файла excel и папки с изображениями, каждая строка в excel описывает каждую запись и имеет список имен файлов в папке (фотографии, связанные с записью).
Я сделал script, который создает каждую запись в базе данных и сохраняет ее через оболочку django, но я не знаю, как создать экземпляр InMemoryUploadedFile для сохранения его с помощью модели.
В django 1.0 у меня был этот небольшой класс, который позволил мне делать то, что мне нужно, но с изменениями в django 1.1 он больше не работает.
class ImportFile(file):
def __init__(self, *args, **kwargs):
super(ImportFile, self).__init__(*args, **kwargs)
self._file = self
self.size = os.path.getsize(self.name)
def __len__(self):
return self.size
def chunks(self, chunk_size=None):
self._file.seek(0)
yield self.read()
Я использовал этот класс с этим фрагментом кода для загрузки изображений и сохранения их с экземпляром модели.
for photo in photos:
f = ImportFile(os.path.join(IMPORT_DIR, 'fotos', photo), 'r')
p = Photo(name=f.name, image=f, parent=supply.supply_ptr)
name = str(uuid1()) + os.path.splitext(f.name)[1]
p.image.save(name, f)
p.save()
Вопрос в том, как я могу создать InMemoryUploadedFile или TemporaryUploadedFile из файла в python?, или любую другую вещь, которая могла бы работать в этом контексте.