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

2.7 KiB

relations.relation

RelationType Objects

class RelationType(Enum)

Different types of relations supported by ormar:

  • ForeignKey = PRIMARY
  • reverse ForeignKey = REVERSE
  • ManyToMany = MULTIPLE

Relation Objects

class Relation(Generic[T])

Keeps related Models and handles adding/removing of the children.

__init__

 | __init__(manager: "RelationsManager", type_: RelationType, field_name: str, to: Type["T"], through: Type["Model"] = None) -> None

Initialize the Relation and keep the related models either as instances of passed Model, or as a RelationProxy which is basically a list of models with some special behavior, as it exposes QuerySetProxy and allows querying the related models already pre filtered by parent model.

Arguments:

  • manager (RelationsManager): reference to relation manager
  • type_ (RelationType): type of the relation
  • field_name (str): name of the relation field
  • to (Type[Model]): model to which relation leads to
  • through (Type[Model]): model through which relation goes for m2m relations

 | _clean_related() -> None

Removes dead weakrefs from RelationProxy.

_find_existing

 | _find_existing(child: Union["NewBaseModel", Type["NewBaseModel"]]) -> Optional[int]

Find child model in RelationProxy if exists.

Arguments:

  • child (Model): child model to find

Returns:

(Optional[ind]): index of child in RelationProxy

add

 | add(child: "Model") -> None

Adds child Model to relation, either sets child as related model or adds it to the list in RelationProxy depending on relation type.

Arguments:

  • child (Model): model to add to relation

remove

 | remove(child: Union["NewBaseModel", Type["NewBaseModel"]]) -> None

Removes child Model from relation, either sets None as related model or removes it from the list in RelationProxy depending on relation type.

Arguments:

  • child (Model): model to remove from relation

get

 | get() -> Optional[Union[List["Model"], "Model"]]

Return the related model or models from RelationProxy.

Returns:

(Optional[Union[List[Model], Model]]): related model/models if set