„Prześlij” plik z powłoki django

Muszę zaimportować niektóre dane z pliku Excela i folderu z obrazami, każdy wiersz w Excelu opisuje każdy wpis i ma listę nazw plików w folderze (zdjęcia związane z wpisem).

Zrobiłem skrypt, który tworzy każdy wpis w bazie danych i zapisuje go przez powłokę django, ale nie mam pojęcia, jak utworzyć instancję InMemoryUploadedFile, aby zapisać ją w modelu.

W django 1.0 miałem tę małą klasę, która pozwoliła mi zrobić to, czego potrzebuję, ale ze zmianami w django 1.1 nie działa.

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()

Użyłem tej klasy z tym fragmentem kodu do załadowania obrazów i zapisania ich w instancji modelu.

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()

Pytanie brzmi, jak utworzyć plik InMemoryUploadedFile lub TemporaryUploadedFile z pliku w python ?, lub jakiejkolwiek innej rzeczy, która mogłaby działać w tym kontekście.

questionAnswers(2)

yourAnswerToTheQuestion