          if isinstance(value, datetime.datetime):
              value = value.date()
  
          if self.format.lower() == ISO_8601:
              return value.isoformat()
          return value.strftime(self.format)
  
  
  class DateTimeField(Field):
      default_error_messages = {
 
</s> remove         if isinstance(value, datetime.datetime):
            value = value.date()

 </s> add  </s> remove             ret = value.isoformat()
            if ret.endswith('+00:00'):
                ret = ret[:-6] + 'Z'
            return ret
 </s> add             return value.isoformat() </s> remove class DateTimeField(Field):
 </s> add class DateField(Field): </s> remove             return self.enforce_timezone(value)
 </s> add             self.fail('datetime')

        if isinstance(value, datetime.date):
            return value </s> remove         'invalid': _('Datetime has wrong format. Use one of these formats instead: {format}'),
        'date': _('Expected a datetime but got a date.'),
 </s> add         'invalid': _('Date has wrong format. Use one of these formats instead: {format}'),
        'datetime': _('Expected a date but got a datetime.'),
            ret = value.isoformat()
            if ret.endswith('+00:00'):
                ret = ret[:-6] + 'Z'
            return ret
          if isinstance(value, datetime.datetime):
              value = value.date()
  
          if self.format.lower() == ISO_8601:
            ret = value.isoformat()
            if ret.endswith('+00:00'):
                ret = ret[:-6] + 'Z'
            return ret
          return value.strftime(self.format)
  
  
  class DateTimeField(Field):
      default_error_messages = {
keep keep keep keep replace keep keep keep keep keep
 Refuse to downcast from datetime to date or time 
rest_framework/fields.py