Skip to content

Commit e49484d

Browse files
committed
WIP create body serializer
1 parent f39880a commit e49484d

File tree

3 files changed

+44
-9
lines changed

3 files changed

+44
-9
lines changed

src/backend/joanie/core/api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ def create(self, request, *args, **kwargs):
197197

198198
product = serializer.validated_data.get("product")
199199
course = serializer.validated_data.get("course")
200-
billing_address = serializer.initial_data.get("billing_address")
200+
billing_address = serializer.validated_data.get("billing_address")
201201

202202
# Populate organization field if it is not set and there is only one
203203
# on the product

src/backend/joanie/core/serializers/model_serializers.py

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ class OrderSerializer(serializers.ModelSerializer):
423423
Order model serializer
424424
"""
425425

426-
id = serializers.CharField(read_only=True, required=False)
426+
id = serializers.CharField()
427427
owner = serializers.CharField(
428428
source="owner.username", read_only=True, required=False
429429
)
@@ -470,7 +470,7 @@ class Meta:
470470
"certificate",
471471
"created_on",
472472
"enrollments",
473-
"id",
473+
# "id",
474474
"main_invoice",
475475
"owner",
476476
"total",
@@ -508,6 +508,38 @@ def update(self, instance, validated_data):
508508
return super().update(instance, validated_data)
509509

510510

511+
class OrderCreateSerializer(OrderSerializer):
512+
class Meta:
513+
model = models.Order
514+
fields = [
515+
"course",
516+
# "created_on",
517+
# "certificate",
518+
# "enrollments",
519+
# "id",
520+
# "main_invoice",
521+
# "organization",
522+
# "owner",
523+
# "total",
524+
# "total_currency",
525+
"product",
526+
# "state",
527+
# "target_courses",
528+
]
529+
read_only_fields = [
530+
"certificate",
531+
"created_on",
532+
"enrollments",
533+
# "id",
534+
"main_invoice",
535+
"owner",
536+
"total",
537+
"total_currency",
538+
"state",
539+
"target_courses",
540+
]
541+
542+
511543
class AddressSerializer(serializers.ModelSerializer):
512544
"""
513545
Address model serializer
Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
"""Serializers for core.api.OrderViewSet.create Body"""
22

3-
from .model_serializers import OrderSerializer, AddressSerializer
3+
from rest_framework import serializers
44

5+
from .model_serializers import OrderSerializer, OrderCreateSerializer, AddressSerializer
56

6-
class OrderCreateBodySerializer(OrderSerializer):
7-
billing_address = AddressSerializer(required=False)
87

9-
class Meta(OrderSerializer.Meta):
8+
class OrderCreateBodySerializer:
9+
credit_card_id = serializers.CharField(required=True)
10+
course = serializers.CharField(required=True)
11+
product = serializers.CharField(required=True)
12+
billing_address = AddressSerializer(required=True)
1013

11-
fields = OrderSerializer.Meta.fields + ["billing_address"]
12-
read_only_fields = OrderSerializer.Meta.fields + ["billing_address"]
14+
class Meta(OrderCreateSerializer.Meta):
15+
fields = ["billing_address"]

0 commit comments

Comments
 (0)