Skip to content

Commit 4230376

Browse files
committed
fix: room_schedule을 응답하지 않던 문제 수정
1 parent 1250f7f commit 4230376

3 files changed

Lines changed: 32 additions & 7 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Generated by Django 5.2 on 2025-07-27 12:25
2+
3+
import django.db.models.deletion
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
dependencies = [
9+
("presentation", "0012_alter_roomschedule_presentation"),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name="roomschedule",
15+
name="presentation",
16+
field=models.ForeignKey(
17+
on_delete=django.db.models.deletion.PROTECT,
18+
related_name="room_schedules",
19+
to="presentation.presentation",
20+
),
21+
),
22+
]

app/event/presentation/models.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ def get_all_nested_data(self):
3030
to_attr="_prefetched_active_speakers",
3131
),
3232
models.Prefetch(
33-
lookup="roomschedule_set",
34-
queryset=RoomSchedule.objects.filter_active().select_related("room", "room__event"),
33+
lookup="room_schedules",
34+
queryset=RoomSchedule.objects.filter_active().select_related("room"),
3535
to_attr="_prefetched_active_room_schedules",
3636
),
3737
models.Prefetch(
@@ -102,6 +102,11 @@ def active_speakers(self) -> list[PresentationSpeaker]:
102102
return self._prefetched_active_speakers
103103
return list(self.speakers.filter_active())
104104

105+
def active_room_schedules(self) -> list[RoomSchedule]:
106+
with suppress(AttributeError):
107+
return self._prefetched_active_room_schedules
108+
return list(self.room_schedules.filter_active())
109+
105110

106111
class PresentationCategoryRelation(models.Model):
107112
presentation = models.ForeignKey(Presentation, on_delete=models.CASCADE)
@@ -149,7 +154,7 @@ class RoomSchedule(BaseAbstractModel):
149154
room = models.ForeignKey(Room, on_delete=models.PROTECT)
150155
start_at = models.DateTimeField()
151156
end_at = models.DateTimeField()
152-
presentation = models.ForeignKey(Presentation, on_delete=models.PROTECT)
157+
presentation = models.ForeignKey(Presentation, on_delete=models.PROTECT, related_name="room_schedules")
153158

154159
objects: RoomScheduleQuerySet = RoomScheduleQuerySet.as_manager()
155160

app/event/presentation/serializers.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,10 @@ class Meta:
2525

2626
class RoomScheduleSerializer(serializers.ModelSerializer):
2727
room_name = serializers.CharField(source="room.name", read_only=True)
28-
event_id = serializers.IntegerField(source="room.event.id", read_only=True)
29-
event_name = serializers.CharField(source="room.event.name", read_only=True)
3028

3129
class Meta:
3230
model = RoomSchedule
33-
fields = ("id", "room_name", "event_id", "event_name", "start_at", "end_at")
31+
fields = ("id", "room_name", "start_at", "end_at")
3432

3533

3634
class CallForPresentationScheduleSerializer(serializers.ModelSerializer):
@@ -45,7 +43,7 @@ class PresentationSerializer(serializers.ModelSerializer):
4543
image = serializers.FileField(source="image.file", read_only=True, allow_null=True)
4644
categories = PresentationCategorySerializer(many=True, read_only=True, source="active_categories")
4745
speakers = PresentationSpeakerSerializer(many=True, read_only=True, source="active_speakers")
48-
room_schedules = RoomScheduleSerializer(source="room_schedules_set", many=True, read_only=True)
46+
room_schedules = RoomScheduleSerializer(many=True, read_only=True, source="active_room_schedules")
4947
call_for_presentation_schedules = CallForPresentationScheduleSerializer(many=True, read_only=True)
5048

5149
class Meta:

0 commit comments

Comments
 (0)