|
2 | 2 | from core.const.serializer import COMMON_ADMIN_FIELDS |
3 | 3 | from core.serializer.base_abstract_serializer import BaseAbstractSerializer |
4 | 4 | from core.serializer.json_schema_serializer import JsonSchemaSerializer |
| 5 | +from django.core.files.storage import storages |
5 | 6 | from event.presentation.models import Presentation, PresentationCategory, PresentationSpeaker, PresentationType |
6 | 7 | from file.models import PublicFile |
7 | 8 | from participant_portal_api.models import ModificationAudit |
@@ -73,16 +74,19 @@ class Meta: |
73 | 74 | model = UserExt |
74 | 75 | fields = ("id", "nickname_ko", "nickname_en") |
75 | 76 |
|
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() |
78 | 79 |
|
79 | 80 | class Meta: |
80 | 81 | model = PresentationSpeaker |
81 | 82 | fields = ("id", "user", "image", "biography_ko", "biography_en") |
82 | 83 |
|
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) |
86 | 90 |
|
87 | 91 | class Meta: |
88 | 92 | model = Presentation |
|
0 commit comments