DRF Django: Как изменить значение перед сохранением
class Pet(models.Model):
date_of_birth = models.DateField()
class PetSerializer(serializers.ModelSerializer):
class Meta:
model = Pet
fields = "__all__"
Ныне, когда я пытаюсь сделать
curl -X POST -H "Content-Type: application/json" \
-d '{
"date_of_birth":"2021-08-29T00:46:27.103Z"
}' http://localhost:8025/api/dob/
Я получаю
{"date_of_birth":["Date has wrong format. Use one of these formats instead: YYYY-MM-DD."]}
Как управлять этим, потому что я буду получать входные данные только в формате 2021-08-29T00:46:27.103Z
Добавьте input_formats
к полю даты:
class PetSerializer(serializers.ModelSerializer):
date_of_birth = serializers.DateField(input_formats=['%Y-%m-%dT%H:%M:%S.%fZ'])
class Meta:
model = Pet
fields = ('date_of_birth', ...)
Документы в https://www.django-rest-framework.org/api-guide/fields/#datefield