Django REST API serializer.is_valid() всегда возвращает false

Я пытаюсь сделать POST-запрос от фронтенда к бэкенду через REST API. В качестве данных я передаю словарь, который содержит все поля таблицы из базы данных

Данные с фронтенда выглядят следующим образом:

var state = {
  event: {
    name: "test",
    id_organizer: 1,
    start_date: "2019-11-11T11:11:11",
    end_date: "2019-12-11T11:12:11",
    location: "test",
    description: "test",
    id_type: 1,
    status: "pending",
  }
}

и POST запрос следующего содержания:

axios
      .post("http://127.0.0.1:8000/api/addevent", state.event)
      .then(response =>{
        console.log(response.data);
      }) 
      .catch(err => console.log(err));

Вот модель события:

class Event(models.Model):
   name = models.TextField()
   id_organizer = models.ForeignKey(User, on_delete=CASCADE, db_column='id_organizer')
   start_date = models.DateTimeField()
   end_date = models.DateTimeField()
   location = models.TextField()
   description = models.TextField()
   id_type = models.ForeignKey(EventType, on_delete=CASCADE, db_column='id_type')
   status = models.CharField(max_length = 50)
   class Meta:
      db_table="events"

Вот таблица базы данных

Здесь @api_view:

@api_view(['POST'])
def addevent(request):
   if request.method == "POST":
      data =  JSONParser().parse(request)
      serializer = EventSerializer(data=data)
      if serializer.is_valid():
         serializer.save()
         return Response({'saved':True},status=status.HTTP_201_CREATED)
      else:
         return Response({'saved':False}, status=status.HTTP_400_BAD_REQUEST)

Вот сериализатор:

class EventSerializer(serializers.ModelSerializer):
class Meta:
    model = Event
    fields = '__all__'

Запрос выполняется, но функция serializer.is_valid() всегда возвращает false, а ответ всегда {'saved':False}. Я уже проверил данные, что они отправлены правильно, и когда я распечатал их, я получил результат:

{
   "name": "test",
   "id_organizer": 1,
   "start_date": "2019-11-11T11:11:11",
   "end_date": "2019-12-11T11:12:11",
   "location": "test",
   "description": "test",
   "id_type": 1,
   "status": "pending",
 }

Эти данные корректны, и я пришел к выводу, что проблема заключается в функции "is_valid()". Я пытался жестко закодировать данные из api представления, но столкнулся с той же проблемой. Я уже проверил и попробовал большинство сообщений, существующих в этой теме, и не могу найти свою ошибку

Возможно, введенное вами время даты не подтверждается полем Datetime модели. Возможно, вам нужно изменить формат даты и времени с помощью strptime .

Вернуться на верх