Skip to content

Commit 836340f

Browse files
committed
fix: 파일의 URL을 응답하도록 수정
1 parent c1f3311 commit 836340f

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

app/admin_api/serializers/event/presentation.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from core.const.serializer import COMMON_ADMIN_FIELDS
33
from core.serializer.base_abstract_serializer import BaseAbstractSerializer
44
from core.serializer.json_schema_serializer import JsonSchemaSerializer
5+
from django.core.files.storage import storages
56
from event.presentation.models import Presentation, PresentationCategory, PresentationSpeaker, PresentationType
67
from file.models import PublicFile
78
from participant_portal_api.models import ModificationAudit
@@ -73,16 +74,19 @@ class Meta:
7374
model = UserExt
7475
fields = ("id", "nickname_ko", "nickname_en")
7576

76-
user = UserSerializer(read_only=True)
77-
image = serializers.FileField(read_only=True, allow_null=True, source="image.file")
77+
user = UserSerializer()
78+
image = serializers.SerializerMethodField()
7879

7980
class Meta:
8081
model = PresentationSpeaker
8182
fields = ("id", "user", "image", "biography_ko", "biography_en")
8283

83-
type = serializers.CharField(read_only=True, source="type.name_ko")
84-
categories = serializers.SerializerMethodField(read_only=True)
85-
speakers = PresentationSpeakerSerializer(read_only=True, many=True)
84+
def get_image(self, obj: UserExt) -> str | None:
85+
return storages["public"].path(obj.image.file) if obj.image else None
86+
87+
type = serializers.CharField(source="type.name_ko")
88+
categories = serializers.SerializerMethodField()
89+
speakers = PresentationSpeakerSerializer(many=True)
8690

8791
class Meta:
8892
model = Presentation

app/admin_api/serializers/user.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from core.serializer.base_abstract_serializer import BaseAbstractSerializer
77
from core.serializer.json_schema_serializer import JsonSchemaSerializer
88
from core.serializer.read_only_serializer import ReadOnlyModelSerializer
9+
from django.core.files.storage import storages
910
from participant_portal_api.models import ModificationAudit
1011
from rest_framework import serializers
1112
from user.models import UserExt
@@ -46,8 +47,7 @@ class Meta:
4647
fields = ("id", "image", "email", "nickname_ko", "nickname_en")
4748

4849
def get_image(self, obj: UserExt) -> str | None:
49-
# I don't know why, but serializers.FileField(source="image.file") does not work here.
50-
return obj.image.file if obj.image else None
50+
return storages["public"].path(obj.image.file) if obj.image else None
5151

5252
modification_audit = ModificationAuditResponseAdminSerializer(source="*")
5353
original = UserSerializer(source="fake_original_instance")

0 commit comments

Comments
 (0)