Django-Storages («данные» должны быть байтами, получены »,) при сохранении модельного поля - PullRequest
0 голосов
/ 12 октября 2019

Я прочитал django-хранилища документов , которые предлагают использовать следующее для сохранения файлов в облачном хранилище (в моем случае GCS):

>>> obj2 = Resume()
>>> obj2.pdf.save('django_test.txt', ContentFile('more content'))
>>> obj2.pdf
<FieldFile: tests/django_test_.txt>
>>> obj2.pdf.size

Однако, следуя той же логикеЯ пытаюсь сохранить Pandas DataFrame в формате CSV с использованием объекта FileField:

Мой код:

   df = load_some_df()
   print(df.head())
   # prints contents of df
   contents = ContentFile(df.to_csv(index=False, header=True))
   output_file_name = 'df.csv'

   instance = MyModel()
   instance.output_file.save(output_file_name, contents)

Выше приведено сообщение об ошибке:

('`data` must be bytes, received', <class 'str'>)

1 Ответ

0 голосов
/ 12 октября 2019

Заменить df.to_csv(index=False, header=True) на df.to_csv(index=False, header=True).encode('utf-8')

...