장고 ImageField 저장 오류

장고 ImageField 저장 오류 : 분명히 모델에 ImageField가 존재하고, form valid하고 다른 필드 데이터들은 save가 잘 되었는데 ImageField에만 데이터가 안 들어가는 경우를 보았습니다.

이 경우 어떤 해결책들이 있나 정리해보았습니다.

장고 ImageField 저장 오류 해결법

1. views에 받는 FILES 인자 미전달

form = CustomForm(request.POST, request.FILES) 와 같이 받아야하는데 form = CustomForm(request.POST) 만 받음

2. 파일 업로드 세팅

MEDIA_ROOT 및 MEDIA_URL 설정이 올바르게 설정되었는지, ImageField(upload_to)에 지정된 업로드 디렉터리가 Django 애플리케이션에서 쓸 수 있는지 확인

3. is_valid() 검사했는지

‘ImageField’와 관련된 유효성 검사 오류가 있는 경우 데이터가 저장되지 않습니다.

4. form enctype 속성 확인

적절한 form 처리 방법(POST 요청, enctype=”multipart/form-data”)을 사용하고 있고 파일 데이터가 요청에서 올바르게 추출되고 있는지 확인

5. 파일 권한 문제

upload_to’에 지정된 디렉터리에 Django 애플리케이션이 파일을 쓰는 데 필요한 권한이 있는지 확인

마치며

저는 1번이 문제였습니다. 분명 settings의 MEDIA 변수도 잘 설정했고, form is valid하고 form의 enctype도 철자 문제 없이 입력했는데….

오류도 내뿜지 않아서 뭐가 문제인지 조금 헤맸습니다..

처음으로 이미지를 받아오다 보니 놓쳤었네요…

request.FILES … 다시는 잊지 못할 것 같습니다.

참고하면 좋은 글

Leave a Comment

목차