there is my serializer code:
serializer.py
class StartListSerializer(serializers.Serializer):
id = serializer.CharField()
time = serializers.DateField(fromat=None, input_formats=None)
it will give me this:'time': '2014-03-14T22:44:16.923000'
the input time format is datetime.datetime(2014, 3, 14, 22, 44, 37, 280000)
But I want to get time like this 2014-03-14 22:44:37
how can I change my serializer to get this time?
And, because the format is dd/mm/yyyy, we must use a slash to separate the date, month and year.
Any 'read_only' fields that are incorrectly included in the serializer input will be ignored. Set this to True to ensure that the field is used when serializing a representation, but is not used when creating or updating an instance during deserialization.
First, open the views.py file of your Django application and import the datetime module. Next, use the datetime. now() method to get the current date and time value.
Serializers in Django REST Framework are responsible for converting objects into data types understandable by javascript and front-end frameworks. Serializers also provide deserialization, allowing parsed data to be converted back into complex types, after first validating the incoming data.
The usual Python datetime format will work:
# for DateField
date = serializers.DateField(format="%Y-%m-%d")
# for DateTimeField
time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
After testing the accepted answer, I got the following error:
AssertionError: Expected a
date
, but got adatetime
. Refusing to coerce, as this may mean losing timezone information. Use a custom read-only field and deal with timezone issues explicitly.
Using the serializer field as datetime
solved the issue.
class StartListSerializer(serializers.Serializer):
# ...
time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With