728x90
개발환경: Django + Reactjs + Mysql
# model.py
def get_image_path(instance, filename):
today = now()
return 'avatar/user/{}/{}/{}/{}_{}'.format(today.year, today.month, today.day, instance.name, filename)
class User(models.Model):
...
avatar = ImageField(upload_to=get_image_path(), blank=True, null=True)
...
avatar란 필드에서 경로를 DB에 적힌 그대로 /avatar/2024/01/16/user1_image.png 로 가져오는 바람에 클라이언트에서 보여줄 때 제대로 경로를 가져오지 못하는 오류가 있었다.
오류: /avatar/user/2024/01/16/user1_image.png
정상: http://localhost:8000/media/avatar/user/2024/01/16/user1_image.png
view.py 에서 get 메소드의 Response객체를 구성해줄 때, context값을 추가해주니 해결되었다.
# view.py
class UserAPI(generics.RetrieveAPIView):
permission_classes = [permissions.IsAuthenticated]
serializer_class = UserSerializer
def get(self, request):
id = self.request.query_params.get('id')
user = User.objects.get(id=id)
user_history = UserHistory.objects.all().filter(user_id=id)
print(user.id, user_history)
return Response({
"user": UserSerializer(user, context=self.get_serializer_context()).data,
"history": UserHistorySerializer(user_history, many=True).data,
"detail":"ok",
}, status=status.HTTP_200_OK)
728x90
'인간세상의 종말이 도래해따 > 오류' 카테고리의 다른 글
[windows openssh] ssh 연결 시 ssh-key 등록 이후에도 비번 입력하라고 뜨는 오류 (0) | 2024.10.31 |
---|---|
[python] TypeError: warn() missing 1 required keyword-only argument: 'stacklevel' 해결 완료 (0) | 2023.09.26 |
(해결함) 갤럭시핏2 웨어러블 앱 연결실패 (0) | 2023.05.04 |
Windows 환경에서 github 여러 계정 사용할 때 ssh-add 오류 (1) | 2022.05.09 |
[MS 제품키 인증] 제품키 인증 오류 0x80070490 (0) | 2019.09.03 |
댓글