Как разместить сообщение в Django -Rest-Framework с другим форматом - PullRequest
0 голосов
/ 07 апреля 2020

Моя модель:

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].

...