Моя модель:
from django.db import models
# Create your models here.
from rest_framework.exceptions import ValidationError
class Results(models.Model):
test_taker = models.ForeignKey('users.User', null=True, related_name='testtakerId', on_delete=models.CASCADE)
question_detail = models.ForeignKey('questions_detail.Questions_detail', null=True, related_name='answersId',
on_delete=models.CASCADE)
test_id = models.IntegerField(null=True)
answer = models.CharField(max_length=255, null=True)
custom_answer = models.CharField(max_length=255, null=True)
Что я хочу опубликовать:
{
"test_taker": 1,
"test_id": 1,
"question": [
{
"question_id": 1,
"answer": 2,
"custom_answer": "c1"
},
{
"question_id": 2,
"answer": 3,
"custom_answer": "c2"
},
{
"question_id": 3,
"answer": 4,
"custom_answer": "c3"
},
{
"question_id": 2,
"answer": 1,
"custom_answer": "c4"
}
]
}
В настоящее время я занимаюсь:
В моем views.py: ( Я использую rest_framework_bulk)
class AddResult(ListBulkCreateUpdateDestroyAPIView):
lookup_field = 'pk'
serializer_class = ResultsSerializer
def get_queryset(self):
return Results.objects.all()
def perform_create(self, serializer):
test_taker = self.request.data['test_taker']
test_id = self.request.data['test_id']
serializer.save(test_taker=test_taker, test_id=test_id)
Мой Сериализатор:
class ResultsSerializer(BulkSerializerMixin,serializers.ModelSerializer):
class Meta:
model = Results
fields = '__all__'
list_serializer_class = BulkListSerializer
То, что происходит, это то, что он просто хранит 1 результат и что test_taker = 1
и test_id = 1
, что берется из внешняя часть JSON.
Я хочу, чтобы она сохраняла все записи в формате [test_taker, test_id, question_id , answer, custom_answer]
.