DRF에서 request.FILES를 이용해 파일을 업로드하려고 합니다. 그런데 일반

 
DongHyeok Lee

DRF에서

request.FILES를 이용해 파일을 업로드하려고 합니다.

그런데 일반적인 방법(기존 웹방식)으로는 잘 업로드 되는데,

DRF를 이용하려고 하니, 컨텐츠 타입 관련해서 문제가 발생하였습니다.
( 참조 : http://www.django-rest-framework.org/api-guide/renderers/#multipartrenderer)

공식 문서를 참조해서 tests.py에
해당 URL에 대한 RequestFactory()를이용해서

[tests.py]

from django.test import TestCase
from rest_framework.test import APIRequestFactory
from django.test.client import encode_multipart, RequestFactory

profile_img = RequestFactory()
data = {‘title’: ‘remember to email dave’}
content = encode_multipart(‘BoUnDaRyStRiNg’, data)
content_type = ‘multipart/form-data; boundary=BoUnDaRyStRiNg’
request = profile_img.post(‘/profile_img/’, content_type=content_type)

이런식으로 잡고서

테스트 해보니….415에러(타입에러)가 뜹니다 ㅠㅠ
{
“detail”: “요청된 “multipart/form-data; boundary=—-WebKitFormBoundaryOaQBksFQFk0trEbk”가 지원되지 않는 미디어 형태입니다.”
}

이라고 오류메세지가 나오네요….

[Question]
1.오류 메세지에서 boundary부분이 CSRF와 같은 건가요?
테스트 할 때 마다 해당 값이 바뀌더라구요….

2.boundary부분이 CSRF와 같은 역할을 한다면, tests.py에서 어떤 식으로 잡아야하나요?

3. DRF를 이용해서 파일 업로드하는 것을 살짝?볼 수 있는 예제가 있을까요?

조금만 도와주시면 감사하겠습니다…ㅠㅠ(흑)

Advertisements