def has_changed(self, initial, data):
        """
        Return True if data differs from initial.
        """
        try:
            data = self.to_python(data)
            if hasattr(self, '_coerce'):
                return self._coerce(data) != self._coerce(initial)
        except __HOLE__:
            return True
        # For purposes of seeing whether something has changed, None is
        # the same as an empty string, if the data or initial value we get
        # is None, replace it with ''.
        initial_value = initial if initial is not None else ''
        data_value = data if data is not None else ''
        return initial_value != data_value
dataset/ETHPy150Open django/django/django/forms/fields.py/Field.has_changed