Skip to content

Commit 2f30a55

Browse files
committed
Fix: relation 테이블 query 오류 수정
1 parent 2c34c87 commit 2f30a55

File tree

2 files changed

+27
-7
lines changed

2 files changed

+27
-7
lines changed

sponsor/serializers.py

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,31 @@ class Meta:
2525

2626

2727
class SponsorBenefitWithOfferSerializer(SponsorBenefitSerializer):
28-
offer = serializers.SerializerMethodField()
28+
id = serializers.SlugRelatedField(slug_field="id", source="benefit", read_only=True)
29+
name = serializers.SlugRelatedField(
30+
slug_field="name", source="benefit", read_only=True
31+
)
32+
desc = serializers.SlugRelatedField(
33+
slug_field="desc", source="benefit", read_only=True
34+
)
35+
unit = serializers.SlugRelatedField(
36+
slug_field="unit", source="benefit", read_only=True
37+
)
38+
is_countable = serializers.SlugRelatedField(
39+
slug_field="is_countable", source="benefit", read_only=True
40+
)
2941

30-
class Meta(SponsorBenefitSerializer.Meta):
31-
fields = SponsorBenefitSerializer.Meta.fields + ["offer"]
42+
class Meta:
43+
model = BenefitByLevel
44+
fields = ["id", "name", "desc", "unit", "is_countable", "offer"]
45+
46+
def get_benefit_id(self, obj):
47+
breakpoint()
48+
return
3249

3350
def get_offer(self, obj):
34-
return obj.benefit_by_level.filter(benefit_id=obj.id).get().offer
51+
breakpoint()
52+
return obj.benefit_by_level.filter(benefit_id=obj.id)
3553

3654

3755
class SponsorSerializer(serializers.ModelSerializer):
@@ -59,7 +77,9 @@ class Meta:
5977

6078

6179
class SponsorLevelSerializer(serializers.ModelSerializer):
62-
benefits = SponsorBenefitWithOfferSerializer(many=True, read_only=True)
80+
benefits = SponsorBenefitWithOfferSerializer(
81+
many=True, read_only=True, source="benefit_by_level"
82+
)
6383

6484
class Meta:
6585
model = SponsorLevel

sponsor/viewsets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def get_serializer_class(self):
4949
return SponsorLevelSerializer
5050

5151
@action(detail=False, methods=["POST"])
52-
def assign_benefits(self, request):
52+
def assign_benefits(self, request, version):
5353
serializer = self.get_serializer(data=request.data)
5454
serializer.is_valid(raise_exception=True)
5555
try:
@@ -59,7 +59,7 @@ def assign_benefits(self, request):
5959
return Response(serializer.data)
6060

6161
@action(detail=True, methods=["PUT"])
62-
def create_or_update_benefits(self, request):
62+
def create_or_update_benefits(self, request, version):
6363
level_id = request.data.get("level_id", None)
6464
benefit_id = request.data.get("benefit_id", None)
6565
benefit_by_level = get_object_or_404(

0 commit comments

Comments
 (0)