Django request.FILES пусто - PullRequest
       0

Django request.FILES пусто

3 голосов
/ 13 февраля 2012

Я делаю запрос POST API для загрузки файла в интерфейс REST приложения django.Этот запрос сделан из другого представления приложения django, которое получает файл из формы.Я использую модуль постера

image = request.FILES['image']
from utils.poster.encode import multipart_encode
from utils.poster.streaminghttp import register_openers
register_openers()
datagen, headers = multipart_encode({'file':image.read()})
response = urlfetch.fetch(url="url",
            payload=datagen,
            method=urlfetch.POST,
            headers=headers)

Я пропускаю какие-либо заголовки ?.Как django обрабатывает запрос с multipart / form-data?Это ошибка, которую я получаю.

multipart_yielder instance has no attribute '__len__'

1 Ответ

3 голосов
/ 13 февраля 2012

GAE UrlFetch не может использовать выходные данные, возвращаемые multipart_encode () для полезной нагрузки.UrlFetch.fetch выполняет len() для полезной нагрузки, а полезная нагрузка, возвращаемая multipart_encode, является генератором Python, который в общем случае не поддерживает len().

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

datagen, headers = multipart_encode({'file':image.read()})
data = str().join(datagen)    
response = urlfetch.fetch(url="url",
        payload=data ,
        method=urlfetch.POST,
        headers=headers)

О проблеме сообщили здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...