def to_python(self, value): if value is None: return value if isinstance(value, datetime): return value.date() if isinstance(value, date): return value if isinstance(value, basestring): try: return isodate.parse_iso_date(value) except isodate.InvalidFormat: raise ValidationError('invalid_format', self) except isodate.InvalidDate: raise ValidationError('invalid', self)
def to_python(self, value): if value is None: return value if isinstance(value, datetime): return value if isinstance(value, date): return datetime(value.year, value.month, value.day) if isinstance(value, basestring): try: return isodate.parse_iso_datetime(value) except isodate.InvalidFormat: # we also accept a date-only string try: return isodate.parse_iso_date(value) except isodate.InvalidFormat: raise ValidationError('invalid_format', self) except isodate.InvalidDate: raise ValidationError('invalid', self)