У меня есть приложение Django (1.6), я использую модель с именем Books
, и у нее есть поле с именем data
, которое представляет собой FileField с параметром upload_to
, указывающим на каталог корзины S3 .
У меня есть элемент Book с этим путем внутри data
поля media_books / today / MyFirst \ Book.pdf
имя файла должно быть MyFirst \ Book.pdf поэтому URL-адрес S3 должен называться так:
'https://bookstore.s3.amazonaws.com/media_books/today/MyFirst%5CBook.pdf'
, но код возвращает меня так:
>>> book.data.name
u'media_books/today/MyFirst\Book.pdf'
>>> part.data._get_url()
'https://bookstore.s3.amazonaws.com/media_books/today/MyFirst/Book.pdf'
, чтобы последний URL-адрес не совпадает с URL-адресом S3, поэтому код возвращается ко мне, пытаясь получить его:
>>>book.data.read()
raise IOError('File does not exist: %s' % name)
IOError: File does not exist: /media_books/today/MyFirst/Book.pdf
Я подумал, может быть, создать свой собственный FileField, но не знаю, какой метод следует перезаписать, чтобы исправить проблема?
Другая идея заключается в создании сценария, который исправляет все имена в кавычках без кавычек, и создает решение для записей функций. у кого-нибудь есть другая идея?