Generates a list of values of the `attribute` of all ancestors of
            this node (as well as the node itself). If a value is ``None``, then
            the optional value of `missing` is used (by default ``None``).

            By default, the ``getattr(node, attribute, None) or missing``
            mechanism is used to obtain the value of the attribute for each
            node. This can be overridden by supplying a custom `visitor`
            function, which expects as arguments the node and the attribute, and
            should return an appropriate value for the required attribute.

            :param attribute: the name of the attribute.

            :param missing: optional value to use when attribute value is None.

            :param visitor: optional function responsible for obtaining the
                attribute value from a node.

            :return: a list of values of the required `attribute` of the
                ancestor path of this node.

def attribute_path(self, attribute, missing=None, visitor=None):
        """ Generates a list of values of the `attribute` of all ancestors of
            this node (as well as the node itself). If a value is ``None``, then
            the optional value of `missing` is used (by default ``None``).

            By default, the ``getattr(node, attribute, None) or missing``
            mechanism is used to obtain the value of the attribute for each
            node. This can be overridden by supplying a custom `visitor`
            function, which expects as arguments the node and the attribute, and
            should return an appropriate value for the required attribute.

            :param attribute: the name of the attribute.

            :param missing: optional value to use when attribute value is None.

            :param visitor: optional function responsible for obtaining the
                attribute value from a node.

            :return: a list of values of the required `attribute` of the
                ancestor path of this node.
        """
        _parameters = {"node": self, "attribute": attribute}
        if missing is not None:
            _parameters["missing"] = missing
        if visitor is not None:
            _parameters["visitor"] = visitor
        return self.__class__.objects.attribute_path(**_parameters)