Как добиться определенного типа API в Django rest framework

Я новичок в Django rest framework и хочу получить такой вид API:

 {
    question_no: "1",
    question: "How many sides are equal in a scalene triangle?",
    options: [
        { que_options: "3", selected: false, isCorrect: true },
        { que_options: "2", selected: false, isCorrect: true },
        { que_options: "0", selected: false, isCorrect: true },
    ],
},

Как я могу достичь вышеупомянутого типа API?

Я пытался заставить его работать с помощью следующего кода, но он не работает:

from django.db import models

# Create your models here.
class AnswerOptions(models.Model):
    option= models.CharField(max_length=500)
    isCorrect = models.BooleanField(default=False)


class Quiz(models.Model):
    question = models.TextField()
    options = models.ManyToManyField(AnswerOptions)

Для достижения такого вида api вам необходимо создать соответствующий сериализатор. Он должен выглядеть примерно так:

class AnswerOptionSerializer(serializers.ModelSerializer):
    class Meta:
        model = AnswerOption
        fields = ('__all__')

class QuizSerializer(serializers.ModelSerializer):
    answeroption_set = AnswerOptionSerializer(many=True)
    class Meta:
        model = Quiz
        fields = ('__all__')

Вам также нужно не забыть создать правильное представление. Если вы предполагаете вывести список результатов, то я бы использовал ListAPIView.

class MyListView(ListCreateAPIView):
    permission_classes = (AllowAny,)
    serializer_class = QuizSerializer
    queryset = Quiz.objects.all()
Вернуться на верх