FileField Django 1.6 Back-sla sh в имени заменяется на forward-sla sh при попытке чтения () - PullRequest
0 голосов
/ 11 января 2020

У меня есть приложение 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, но не знаю, какой метод следует перезаписать, чтобы исправить проблема?

Другая идея заключается в создании сценария, который исправляет все имена в кавычках без кавычек, и создает решение для записей функций. у кого-нибудь есть другая идея?

...