def _put_async(self, **ctx_options):
if self._projection:<EOL><INDENT>raise datastore_errors.BadRequestError('<STR_LIT>')<EOL><DEDENT>from . import tasklets<EOL>ctx = tasklets.get_context()<EOL>self._prepare_for_put()<EOL>if self._key is None:<EOL><INDENT>self._key = Key(self._get_kind(), None)<EOL><DEDENT>self._pre_put_hook()<EOL>fut = ctx.put(self, **ctx_options)<EOL>post_hook = self._post_put_hook<EOL>if not self._is_default_hook(Model._default_post_put_hook, post_hook):<EOL><INDENT>fut.add_immediate_callback(post_hook, fut)<EOL><DEDENT>return fut<EOL>
Write this entity to Cloud Datastore.

        This is the asynchronous version of Model._put().