Deletes all of the fields at the specified locations.

        args:

            ``obj=``\ *OBJECT*
                the object to remove the fields from

            ``force=``\ *BOOL*
                if True, missing attributes do not raise errors.  Otherwise,
                the first failure raises an exception without making any
                changes to ``obj``.

def delete(self, obj, force=False):
        """Deletes all of the fields at the specified locations.

        args:

            ``obj=``\ *OBJECT*
                the object to remove the fields from

            ``force=``\ *BOOL*
                if True, missing attributes do not raise errors.  Otherwise,
                the first failure raises an exception without making any
                changes to ``obj``.
        """
        # TODO: this could be a whole lot more efficient!
        if not force:
            for fs in self:
                try:
                    fs.get(obj)
                except FieldSelectorException:
                    raise

        for fs in self:
            try:
                fs.delete(obj)
            except FieldSelectorException:
                pass