def to_python(self, value): """ Validates that the input can be converted to a date. Returns a flexibledate object. """ if not value: return None if isinstance(value, flexibledate): return value try: return flexibledate(value) except (ValueError, TypeError), inst: raise ValidationError(inst)
def value_from_datadict(self, data, files, name): try: y = int(data.get(self.year_field % name)) except: y = 0 try: m = int(data.get(self.month_field % name)) except: m = 0 try: d = int(data.get(self.day_field % name)) except: d = 0 if y == m == d == "0": return None if y: return flexibledate('%04d%02d%02d' % (y, m or 0, d or 0)) return data.get(name, None)