def make_bound(self, for_instance):
        """
        Create a new :ref:`bound field class <api-aioxmpp.forms-bound-fields>`
        or return an existing one for the given form object.

        :param for_instance: The form instance to which the bound field should
                             be bound.

        If no bound field can be found on the given `for_instance` for this
        field, a new one is created using :meth:`create_bound`, stored at the
        instance and returned. Otherwise, the existing instance is returned.

        .. seealso::

           :meth:`create_bound`
              creates a new bound field for the given form instance (without
              storing it anywhere).
        """

        try:
            return for_instance._descriptor_data[self]
        except KeyError:
            bound = self.create_bound(for_instance)
            for_instance._descriptor_data[self] = bound
            return bound