django media 파일에 domain url 붙이기

정훈·2023년 11월 30일
0

이걸 고민했던 이유는 query_set values에서 역참조를 사용을 하면서 여태까지 잘 나오던 image url에 domain링크가 나오지 않게 되면서 시작했다...
처음 검색을 했을때는 시리얼라이저에서 use_url=True을 추가하라는 말이 있어서 확인해보니 이미 들어가 있는 코드였다...
그래서 serializer에서 to_representationget_image함수를 가지고 엄청 많이 씨름을 했다.
계속 씨름을 하던 와중에 분명 db에서는 domain링크가 빠진 문자열이 기록되어 있는데 serializer를 거치고 나오면 domain링크가 붙어있는 모습을 보고 분명 django 내부에 변환하는 코드가 있을 거라고 생각하고 함수를 찾아보니 build_absolute_uri()라는 함수를 찾게 되었고 urljoin()과 함께 적용해보니 도메인이 잘붙은체로 전달되는 것을 확인했다!! 성공이다!!
간단하게 사용했던 방법을 작성해 놓을려고 한다.

from django.conf import settings
from urllib.parse import urljoin

class photo_imageAPI(ModelViewSet):
	def list(self, request, *args, **kwargs):
    queryset = self.queryset.values('원하는', 'columns을', '작성')
    
    base_url = request.build_absolute_uri(settings.MEDIA_URL)
    for data in queryset:
    	data['image'] = urljoin(base_url, data['image'])
        
	return Response(queryset)
profile
누군가에게 빛이 되길...

0개의 댓글