Reputation: 103
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
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