feat: add Exercise model and CRUD API for tutorial exercises

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-23 01:44:14 -06:00
parent c4ddfa6841
commit bd9bd84f2d
7 changed files with 143 additions and 11 deletions

View File

@@ -1,5 +1,5 @@
from rest_framework import serializers
from .models import Tutorial
from .models import Tutorial, Exercise
from account.serializers import UserSerializer
@@ -53,3 +53,23 @@ class EditTutorialSerializer(serializers.ModelSerializer):
class Meta:
model = Tutorial
fields = ["id", "title", "content", "is_public", "order", "type", "code"]
class ExerciseSerializer(serializers.ModelSerializer):
class Meta:
model = Exercise
fields = ["id", "type", "data", "order"]
class CreateExerciseSerializer(serializers.Serializer):
tutorial_id = serializers.IntegerField()
type = serializers.ChoiceField(choices=["mcq", "sort"])
data = serializers.JSONField()
order = serializers.IntegerField(default=0)
class EditExerciseSerializer(serializers.Serializer):
id = serializers.IntegerField()
type = serializers.ChoiceField(choices=["mcq", "sort"])
data = serializers.JSONField()
order = serializers.IntegerField(default=0)