  
          for format in self.input_formats:
              if format.lower() == ISO_8601:
                  try:
                      parsed = parse_date(value)
                  except (ValueError, TypeError):
                      pass
                  else:
                      if parsed is not None:
                          return parsed
 
</s> remove                     parsed = parse_datetime(value)
 </s> add                     parsed = parse_date(value) </s> remove                         return parsed
 </s> add                         return self.enforce_timezone(parsed) </s> remove                         return self.enforce_timezone(parsed)
 </s> add                         return parsed </s> remove             return self.enforce_timezone(value)
 </s> add             self.fail('datetime')

        if isinstance(value, datetime.date):
            return value </s> remove         if isinstance(value, datetime.date) and not isinstance(value, datetime.datetime):
            self.fail('date')

 </s> add 
                    parsed = parse_datetime(value)
  
          for format in self.input_formats:
              if format.lower() == ISO_8601:
                  try:
                    parsed = parse_datetime(value)
                  except (ValueError, TypeError):
                      pass
                  else:
                      if parsed is not None:
                          return parsed
keep keep keep keep replace keep keep keep keep keep
 Refuse to downcast from datetime to date or time 
rest_framework/fields.py