2014-11-21 2 views
0

장고 템플릿에 장고 ImageField에 해당하는 input 필드가 있습니다.POST 요청에서 이미지 입력이 누락되었습니다

<form action="/accounts/username/" 
     method="post" 
     id="profile_form" 
     enctype="multipart/form-data"> 
</form> 
... (other input fields and elements) 
<input form="profile_form" id="id_profile_pic" name="profile_pic" type="file" /> 

해당 ViewUpdateView입니다 : 같은 렌더링의 HTML 보인다. 나는 request.FILES이 비어 있고 request.cleaned_data'profile_pic': None을 포함하는 것을 발견했다.

POST 데이터를 추적하기 위해 방화 쇠를 사용했습니다. 다른 필드가 포함되어 있지만 profile_pic은 포함되어 있지 않습니다.

내 죄악은 무엇입니까? 파일이 업로드되지 않는 이유는 무엇입니까?

답변

0

어떻게 든 렌더링 된 HTML을 잘못 복사 한 것으로 밝혀졌습니다! 실제 문제는 입력에 사용 된 양식 ID가 올바르지 않아서 파일 업로드가 실패한 이유였습니다.

0

코드로 인해입니까? form="profile_form"? 내 첫 번째 의심은 비정상적인 형태의 구조가 비난하기 때문에 <input><form> 안에 넣으려고 시도 할 것입니다.

내가 잘못했는지 알려주세요.

+0

슬프게도, 틀렸어. 다른 모든 입력 필드는 양식 태그 외부에서 유사하게 구조화되며 여전히 서버에 POST됩니다. 또한 미신에서 파일 입력 태그를 양식에 넣으려고했지만 그 역시 도움이되지 않는다고 언급해야합니다. 참고로 'form' 속성을 참조하십시오. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#Attributes – battery

+0

두 번째 추측은 _just_ 입력 유형을 변경하는 것입니다. 예 : 텍스트 입력에 전송하여 전송되는지 확인합니다. 그렇다면 문제는 파일 입력에 대한 것임을 확인합니다. 파일 입력은 예외적 인 처리가 많이 필요하기 때문에 가능성이 가장 높습니다. –

+0

Re : 'form' 속성 : 오늘 나는 뭔가를 배웠습니다! –

관련 문제