일상I생각
django-ninja Put Patch Method에서 POST 데이터가 없어서 생기는 문제
bepuri
2022. 6. 15. 12:00
728x90
https://thihara.github.io/Django-Req-Parsing/
DRF에서는 알아서 해줘서 위 처리를 해준다고 한다, 근데 django-ninja를 쓰다가 PUT method 사용시 image를 Optional하게 업데이트 하고 싶은 상황이 있었다.
#자세한 상황은 아래 이슈 참고.
https://github.com/vitalik/django-ninja/issues/473
근데 django-ninja에서는 request의 content-type이 아니라 실제 서버에서 선언한 api에 따라서 content-type을 정해놓고 처리하도록 해뒀다.
따라서 PUT으로 json 타입의 payload를 담은 request를 보내더라도 서버 쪽에선 해당 api가 multipart-form으로 와야되면 항상 multipart-form 형태의 데이터로 간주하고 내부적인 로직을 짜둔것이다.
그러다보니 multipart-form 형태의 코드는 django-ninja에서 POST안에 있는 데이터를 기준으로 request처리를 해주는데 PUT은 당연히 request.POST 데이터가 비어있기 때문에 정상적으로 처리가 되지 않았다.
이게 말로는 무슨말인지 헷갈릴 수 있으나 최상단 글을 읽어보면 쉽게 이해할 수 있을것이다.
나 또한 한참 헤매다가 비슷한 상황을 경험한 개발자들의 솔루션을 참고해서 해결했다.(1번째 링크 or 두번째 링크의 코멘트에 남겨둔 이슈번호 참고)
728x90