Santhosh
Santhosh

Reputation: 11834

DRF Django: How to modify a value before saving

class Pet(models.Model):
    date_of_birth = models.DateField()

class PetSerializer(serializers.ModelSerializer):
    class Meta:
        model = Pet
        fields = "__all__"

Now when i trying to do

curl -X POST -H "Content-Type: application/json" \
 -d '{
"date_of_birth":"2021-08-29T00:46:27.103Z"
}' http://localhost:8025/api/dob/

I get

{"date_of_birth":["Date has wrong format. Use one of these formats instead: YYYY-MM-DD."]}

How to manage this because i will get input as 2021-08-29T00:46:27.103Z format only

Upvotes: 0

Views: 551

Answers (1)

Amin
Amin

Reputation: 2874

Add input_formats to your date field:

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', ...)

Docs in https://www.django-rest-framework.org/api-guide/fields/#datefield

Upvotes: 2

Related Questions