개발_TIL
개발_TIL | 2022-08-01 (72)
by Hee94
2022. 8. 2.
Issue Report - 이미지 없이 게시글, 댓글 작성시 데이터 저장 안됨
상황
- 프론트엔드에서 formdata를 통해 데이터를 넘겨주고있었는데, 이미지 없이 저장을 시도하면 백엔드 Serializer에서 isvalid를 통과하지 못하고 undefined을 뱉고있었다
- QnAModel과 QnAAnswerModel 모두 image field null=True를 허용해준 상태이기에 빈값이라도 통과가 될 줄 알았지만 javascript에서는 빈값을 null이 아닌 undefined 를 돌려줘서 빈값을 허용하지 못하고 있었다
시도
- try catch문으로 이미지를 받앗을때와 받지 않았을때의 시나리오로 빈 값을 넘겨주려 시도했으나, null이라는 값 자체가 존재했기때문에 try 를 통과해버림으로써 조건이 성립하지 않게 되었다
해결
- 빈값 자체를 null로 저장하는 javascript의 특성을 이용하여 if문을 통해 들어오는 값이 null이면 else문을 탈 수 있도록 분기처리를 해줌으로써 해결했다
if (details.image != null){
document.getElementById("image").setAttribute("src", `https://s3.ap-northeast-2.amazonaws.com/gomunity.shop${details.image}`);
} else {
document.getElementById("image").setAttribute("src", `https://s3.ap-northeast-2.amazonaws.com/gomunity.shop/media/%EA%B0%90%EC%9E%90%EC%A0%84.jpg`)
}