2010-07-08 1 views
4

:장고 : 양식에서 이미지 파일을 저장 나는 등의 PaletteGenForm를 통해 업로드로 이미지를 저장할

'InMemoryUploadedFile' object is unsubscriptable 
: 그러나 여기

#Form 
class PaletteGenForm(forms.Form): 
    im = forms.ImageField(required=True) 

#View 
def palette_gen_view(request): 
    PATH_OF_IMAGE_TO_BE_PALETTED= MEDIA_ROOT+ "/tobesaved.png" 
    if request.method == 'POST': 
     form = PaletteGenForm(request.POST, request.FILES) 
     if form.is_valid(): 
      im = Image.open(StringIO(request.FILES['im']['content'])) 
      im.save(PATH_OF_IMAGE_TO_BE_PALETTED, "PNG") 
      #call some functions to generate pallete 
      return #returns the palette of the image. 
    else: 
     form = PaletteGenForm() 
    return render_to_response('palette_generate.html', {'form': form,}) 

내 오류입니다이 URL을 호출 할 때

+0

당신이 스택 트레이스를해야합니까 (요청에서 읽기 시도하지 않았다) 형태 cleaned_data 나를 위해

im = Image.open(StringIO(form.cleaned_data['im'].read())) 

에서 데이터를 읽어보세요보십시오? 제안에 대한 –

답변

4

이 시도 :

im = Image.open(StringIO(request.FILES['im'].read())) 
+0

감사합니다, 여기에 내가 당신을 변경 한 후에는 무엇을 얻을 수 있습니다 : 형식 오류/palet에서/ '모듈'개체는 StringIO에서 '코드에서'수입 StringIO '을 가진 대신하는 것처럼 – Hellnar

+1

보이는 호출하지 않습니다 import StringIO '입니다. 이 /palet/ 'InMemoryUploadedFile'개체의 형식 오류가 가 오류를주고있다 회선을 확인 완전한 역 추적을 제공 할 수 있습니다,이 알렉산더 Artemenko 답변과 동일 – Ashok

1

는 확실하지 당신은 전혀 StringIO에 포장해야합니다.

im = Image.open(request.FILES['im']['content']) 
+0

난 여전히 같은 오류가 포장하지 않고 : TypeError at/palet/'module'객체를 호출 할 수 없습니다. – Hellnar

0

이 근무

+0

unsubscriptable입니다 : – Ashok

관련 문제