code: def _validate_readonly(self, readonly, field, value):
          
          if readonly:
              if not self._is_normalized:
                  self._error(field, errors.READONLY_FIELD)
              # If the document was normalized (and therefore already been
              # checked for readonly fields), we still have to return True
              # if an error was filed.
              has_error = errors.READONLY_FIELD in \
                  self.document_error_tree.fetch_errors_from(
                      self.document_path + (field,))
              if self._is_normalized and has_error:
                  self._drop_remaining_rules()
docs: {'type': 'boolean'}