Django.core.exceptions.ValidationError: [''2022-05-19 00:00:00.000'' значение имеет неверный формат даты. Оно должно быть в формате YYYY-MM-DD."].
Я пытаюсь создать новый объект с помощью flutter и django rest framework , объект имеет поле даты, но когда я пытаюсь сделать post запрос и отправить данные из flutter front end в django api я получаю эту ошибку :
django.core.exceptions.ValidationError: ['“2022-05-19 00:00:00.000” value has an invalid date
format. It must be in YYYY-MM-DD format.']
[17/May/2022 22:18:23] "POST /api/reservations/create/ HTTP/1.1" 500 181841
это метод post :
void creerReservations() async {
_setIds();
client.post(Uri.parse("http://10.0.2.2:8000/api/reservations/create/") , body: {
"date" : dateRendezvous.toString(),
"startTime" :startTime.toString(),
"endTime" :endTime.toString() ,
"description" : ' no description for now',
"patient" : _patient_id.toString(),
"docteur" : _docteur_id.toString() ,
"disponible" : "True"
});
}
Django class :
# Create your models here.
class Reservation(models.Model):
date = models.DateField()
startTime = models.TimeField()
endTime = models.TimeField()
description = models.TextField()
patient = models.ForeignKey(User, on_delete=models.CASCADE , related_name="patient")
docteur = models.ForeignKey(User, on_delete=models.CASCADE , related_name="docteur")
disponible = models.BooleanField( default= True )
def __str__(self):
return self.date
сериализатор :
class ReservationSerializer(ModelSerializer):
class Meta :
model = Reservation
fields = '__all__'
типы переменных :
DateTime dateRendezvous = DateTime.now();
TimeOfDay startTime = TimeOfDay(hour: 15, minute: 0);
TimeOfDay endTime = TimeOfDay(hour: 15, minute: 0);
int _patient_id = 0;
int _docteur_id = 0;
bool? disponible;
Я попробовал это решение, и оно сработало для меня, но оно не является техническим: dateRendezvous.toString().substring(0,9), Я взял первые 10 символов из "2022-05-19 00:00:00.000" и все работает нормально .
Вам нужно использовать DateTimeField
, если вам нужны оба компонента. DateField
используется только для дат.
class Reservation(models.Model):
date = models.DateField()
Должно быть
class Reservation(models.Model):
date = models.DateTimeField()