MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / relationship

Function relationship

lib/sqlalchemy/orm/_orm_constructors.py:1059–1970  ·  lib/sqlalchemy/orm/_orm_constructors.py::relationship

Provide a relationship between two mapped classes. This corresponds to a parent-child or associative table relationship. The constructed class is an instance of :class:`.Relationship`. .. seealso:: :ref:`tutorial_orm_related_objects` - tutorial introduction to :func:`_

(
    argument: Optional[_RelationshipArgumentType[Any]] = None,
    secondary: Optional[_RelationshipSecondaryArgument] = None,
    *,
    uselist: Optional[bool] = None,
    collection_class: Optional[
        Union[Type[Collection[Any]], Callable[[], Collection[Any]]]
    ] = None,
    primaryjoin: Optional[_RelationshipJoinConditionArgument] = None,
    secondaryjoin: Optional[_RelationshipJoinConditionArgument] = None,
    back_populates: Optional[_RelationshipBackPopulatesArgument] = None,
    order_by: _ORMOrderByArgument = False,
    backref: Optional[ORMBackrefArgument] = None,
    overlaps: Optional[str] = None,
    post_update: bool = False,
    cascade: str = "save-update, merge",
    viewonly: bool = False,
    init: Union[_NoArg, bool] = _NoArg.NO_ARG,
    repr: Union[_NoArg, bool] = _NoArg.NO_ARG,  # noqa: A002
    default: Union[_NoArg, _T] = _NoArg.NO_ARG,
    default_factory: Union[_NoArg, Callable[[], _T]] = _NoArg.NO_ARG,
    compare: Union[_NoArg, bool] = _NoArg.NO_ARG,
    kw_only: Union[_NoArg, bool] = _NoArg.NO_ARG,
    hash: Union[_NoArg, bool, None] = _NoArg.NO_ARG,  # noqa: A002
    lazy: _LazyLoadArgumentType = "select",
    passive_deletes: Union[Literal["all"], bool] = False,
    passive_updates: bool = True,
    active_history: bool = False,
    enable_typechecks: bool = True,
    foreign_keys: Optional[_ORMColCollectionArgument] = None,
    remote_side: Optional[_ORMColCollectionArgument] = None,
    join_depth: Optional[int] = None,
    comparator_factory: Optional[
        Type[RelationshipProperty.Comparator[Any]]
    ] = None,
    single_parent: bool = False,
    innerjoin: bool = False,
    distinct_target_key: Optional[bool] = None,
    load_on_pending: bool = False,
    query_class: Optional[Type[Query[Any]]] = None,
    info: Optional[_InfoType] = None,
    omit_join: Literal[None, False] = None,
    sync_backref: Optional[bool] = None,
    dataclass_metadata: Union[_NoArg, Mapping[Any, Any], None] = _NoArg.NO_ARG,
    **kw: Any,
)

Source from the content-addressed store, hash-verified

1057
1058
1059def relationship(
1060 argument: Optional[_RelationshipArgumentType[Any]] = None,
1061 secondary: Optional[_RelationshipSecondaryArgument] = None,
1062 *,
1063 uselist: Optional[bool] = None,
1064 collection_class: Optional[
1065 Union[Type[Collection[Any]], Callable[[], Collection[Any]]]
1066 ] = None,
1067 primaryjoin: Optional[_RelationshipJoinConditionArgument] = None,
1068 secondaryjoin: Optional[_RelationshipJoinConditionArgument] = None,
1069 back_populates: Optional[_RelationshipBackPopulatesArgument] = None,
1070 order_by: _ORMOrderByArgument = False,
1071 backref: Optional[ORMBackrefArgument] = None,
1072 overlaps: Optional[str] = None,
1073 post_update: bool = False,
1074 cascade: str = class="st">"save-update, merge",
1075 viewonly: bool = False,
1076 init: Union[_NoArg, bool] = _NoArg.NO_ARG,
1077 repr: Union[_NoArg, bool] = _NoArg.NO_ARG, class="cm"># noqa: A002
1078 default: Union[_NoArg, _T] = _NoArg.NO_ARG,
1079 default_factory: Union[_NoArg, Callable[[], _T]] = _NoArg.NO_ARG,
1080 compare: Union[_NoArg, bool] = _NoArg.NO_ARG,
1081 kw_only: Union[_NoArg, bool] = _NoArg.NO_ARG,
1082 hash: Union[_NoArg, bool, None] = _NoArg.NO_ARG, class="cm"># noqa: A002
1083 lazy: _LazyLoadArgumentType = class="st">"select",
1084 passive_deletes: Union[Literal[class="st">"all"], bool] = False,
1085 passive_updates: bool = True,
1086 active_history: bool = False,
1087 enable_typechecks: bool = True,
1088 foreign_keys: Optional[_ORMColCollectionArgument] = None,
1089 remote_side: Optional[_ORMColCollectionArgument] = None,
1090 join_depth: Optional[int] = None,
1091 comparator_factory: Optional[
1092 Type[RelationshipProperty.Comparator[Any]]
1093 ] = None,
1094 single_parent: bool = False,
1095 innerjoin: bool = False,
1096 distinct_target_key: Optional[bool] = None,
1097 load_on_pending: bool = False,
1098 query_class: Optional[Type[Query[Any]]] = None,
1099 info: Optional[_InfoType] = None,
1100 omit_join: Literal[None, False] = None,
1101 sync_backref: Optional[bool] = None,
1102 dataclass_metadata: Union[_NoArg, Mapping[Any, Any], None] = _NoArg.NO_ARG,
1103 **kw: Any,
1104) -> _RelationshipDeclared[Any]:
1105 class="st">"""Provide a relationship between two mapped classes.
1106
1107 This corresponds to a parent-child or associative table relationship.
1108 The constructed class is an instance of :class:`.Relationship`.
1109
1110 .. seealso::
1111
1112 :ref:`tutorial_orm_related_objects` - tutorial introduction
1113 to :func:`_orm.relationship` in the :ref:`unified_tutorial`
1114
1115 :ref:`relationship_config_toplevel` - narrative documentation
1116

Callers 15

AClass · 0.90
UserStyleOneClass · 0.90
UserStyleTwoClass · 0.90
SlideClass · 0.90
UserClass · 0.90
UserClass · 0.90
usersMethod · 0.90
UserClass · 0.90
AddressClass · 0.90
AClass · 0.90
BClass · 0.90
UserClass · 0.90

Calls 2

_AttributeOptionsClass · 0.85

Tested by 15

setup_mappersMethod · 0.72
_setupMethod · 0.72
_fixtureMethod · 0.72
setup_mappersMethod · 0.72
setup_mappersMethod · 0.72
test_scalar_proxyMethod · 0.72
test_empty_scalarsMethod · 0.72
test_custom_getsetMethod · 0.72
test_lazy_listMethod · 0.72
test_eager_listMethod · 0.72
test_slicing_listMethod · 0.72
test_lazy_scalarMethod · 0.72