Jackquin
Jackquin

Reputation: 103

Django rest framework DateField format

I have drf model which is containe DateField. That field default format is "YYYY-MM-DD" just i want to convert "DD-MM-YYYY" how can is possible.

models.py

class Reminder(BaseModel):
    content = models.TextField()
    schedule_date = models.DateField()
    schedule_time = models.TimeField()
    is_release = models.BooleanField(default=True)

serializer.py

class ReminderSerializer(HyperlinkedModelSerializer):
    schedule_date = serializers.DateField(format="%d-%m-%Y")
    class Meta:
        model = Reminder
        fields = ('id','content','created_at','schedule_date','schedule_time','user_id','is_release','is_deleted',)

in serializer.py i just give the format but that format convering only in List page. as you can see listing is okey but the POST action field is not converted. API please look at image

Upvotes: 9

Views: 15873

Answers (1)

Thomas Jiang
Thomas Jiang

Reputation: 1323

You can take a look at DRF's docs on this. Basically format only deals with output, but for input you need to include input_formats - for your case you can do schedule_date = serializers.DateField(format="%d-%m-%Y", input_formats=['%d-%m-%Y', 'iso-8601'])

It's up to you whether you want to keep the iso-8601 there.

Upvotes: 27

Related Questions