Django DateTimeField serializer return datetime into string format
I have a serializer that validates datetime fields
.
import rest_framework.serializers as serializer
from django.conf import settings
class ValueNestedSerializer(serializer.Serializer):
lower = serializer.DateTimeField(format=settings.DEFAULT_DATETIME_FORMAT, input_formats=settings.DATETIME_INPUT_FORMATS, required=True)
upper = serializer.DateTimeField(format=settings.DEFAULT_DATETIME_FORMAT, input_formats=settings.DATETIME_INPUT_FORMATS, required=True)
class DateRangeSerializer(serializer.Serializer):
attribute = serializer.CharField(default="UPLOAD_TIME", allow_null=True)
operator = serializer.CharField(default="between_dates")
value = ValueNestedSerializer(required=True)
timezone = serializer.CharField(default="UTC")
timezoneOffset = serializer.IntegerField(default=0)
def validate_attribute(self, attribute):
return 'device_time' if attribute and attribute.lower() == 'device_time' else 'date_range'
The payload is in the format:
"date_range": {
"attribute": "date_range",
"operator": "between_dates",
"value": {
"lower": "2023-01-06T00:00:00Z",
"upper": "2023-02-06T23:59:59Z"
}
}
I tried setting the format to '%Y-%m-%dT%H:%M:%SZ'
, but this still returns lower
and upper
values as datetime
type.
(datetime) 2023-02-06 23:59:59+00:00
How do I get these values as string?