Files
ormar/docs/api/models/traversible.md
2021-04-22 18:55:45 +02:00

1.7 KiB

models.traversible

NodeList Objects

class NodeList()

Helper class that helps with iterating nested models

add

 | add(node_class: Type["RelationMixin"], relation_name: str = None, parent_node: "Node" = None) -> "Node"

Adds new Node or returns the existing one

Arguments:

  • node_class (ormar.models.metaclass.ModelMetaclass): Model in current node
  • relation_name (str): name of the current relation
  • parent_node (Optional[Node]): parent node

Returns:

(Node): returns new or already existing node

find

 | find(node_class: Type["RelationMixin"], relation_name: Optional[str] = None, parent_node: "Node" = None) -> Optional["Node"]

Searches for existing node with given parameters

Arguments:

  • node_class (ormar.models.metaclass.ModelMetaclass): Model in current node
  • relation_name (str): name of the current relation
  • parent_node (Optional[Node]): parent node

Returns:

(Optional[Node]): returns already existing node or None

Node Objects

class Node()

visited

 | visited(relation_name: str) -> bool

Checks if given relation was already visited.

Relation was visited if it's name is in current node children.

Relation was visited if one of the parent node had the same Model class

Arguments:

  • relation_name (str): name of relation

Returns:

(bool): result of the check