Поле почтового запроса Django всегда null

Мой запрос post из React frontend в Django backend не работает, и я не уверен почему. Он всегда говорит, что "question" является null. Я знаю, что в базе данных уже есть вопрос с первичным ключом id 19.

Quiz.js:

const createAnswerSubmission = () => {
        submit(questionIndex);

        const data = {
            "question": quiz.question[questionIndex].id,
            "answer_choice": answerSelected[questionIndex],
            "user": window.localStorage.getItem("user")
        }
     

        const url = "http://localhost:8000/api/submittedanswer/";

        axios.post(url, data, {headers: {
            Authorization: `Token ${window.localStorage.getItem('auth_token')}`,
            Accept: "application/json",
            'Content-Type': 'application/json', 
            
        }
          }).then(function (response) {
              console.log(data)
            
          })
          .catch(function (error) {
            console.log(data);
            alert(error);
          });
          
    }

Журнал консоли показывает следующее:

{question: 19, answer_choice: 4, user: '1'}

А полезная нагрузка запроса показывает:

{question: 19, answer_choice: 4, user: "1"}

Однако я получаю некоторую ошибку:

IntegrityError at /api/submittedanswer/ нулевое значение в столбце "question_id" отношения "api_submittedanswer" нарушает ограничение not-null ПОДРОБНАЯ ИНФОРМАЦИЯ: Неудачная строка содержит (123, 4, null, 1).

models.py:

//...

class Question(models.Model):
    
    pt = models.ForeignKey(PT, on_delete=models.CASCADE, null=True, blank=True, related_name = 'pt')
    section = models.ForeignKey(Section, on_delete=models.CASCADE, null=True, blank=True, related_name = 'section')
    question_type = models.CharField(max_length=20)
    number = models.IntegerField()
    stimulus = models.CharField(max_length = 1000)
    question = models.CharField(max_length = 400)
    answer = models.ManyToManyField(AnswerChoice)
    correct_answer = models.IntegerField(default = 0)
    
    def __str__(self):
        return "PT " + str(self.pt) + " Section " + str(self.section) + " Question " + str(self.number)

class SubmittedAnswer(models.Model):

    user = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    answer_choice = models.IntegerField()

serializers.py:

class QuestionSerializer(ModelSerializer):
    answerChoice = serializers.PrimaryKeyRelatedField(many=True, read_only=True)

    class Meta:
        model = Question
        fields = '__all__'

class SubmittedAnswerSerializer(ModelSerializer):
    
    class Meta:
        model = SubmittedAnswer
        fields = '__all__'
        depth = 1
Вернуться на верх