From c4f908d4ee2975b8c27aaf986a473a464998c0db Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Thu, 2 Jul 2015 11:23:52 +0100 Subject: [PATCH] Introduce datetime_parser as class level attribute on all date/time fields. Refs #3093. --- rest_framework/fields.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 2eebf7b78..3ca7d682e 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -954,6 +954,7 @@ class DateField(Field): } format = api_settings.DATE_FORMAT input_formats = api_settings.DATE_INPUT_FORMATS + datetime_parser = datetime.datetime.strptime def __init__(self, format=empty, input_formats=None, *args, **kwargs): self.format = format if format is not empty else self.format @@ -978,7 +979,7 @@ class DateField(Field): return parsed else: try: - parsed = datetime.datetime.strptime(value, format) + parsed = self.datetime_parser(value, format) except (ValueError, TypeError): pass else: @@ -1017,6 +1018,7 @@ class TimeField(Field): } format = api_settings.TIME_FORMAT input_formats = api_settings.TIME_INPUT_FORMATS + datetime_parser = datetime.datetime.strptime def __init__(self, format=empty, input_formats=None, *args, **kwargs): self.format = format if format is not empty else self.format @@ -1038,7 +1040,7 @@ class TimeField(Field): return parsed else: try: - parsed = datetime.datetime.strptime(value, format) + parsed = self.datetime_parser(value, format) except (ValueError, TypeError): pass else: