4.0 KiB
fields.many_to_many
forbid_through_relations
forbid_through_relations(through: Type["Model"]) -> None
Verifies if the through model does not have relations.
Arguments:
through (Type['Model]): through Model to be checked
populate_m2m_params_based_on_to_model
populate_m2m_params_based_on_to_model(to: Type["Model"], nullable: bool) -> Tuple[Any, Any]
Based on target to model to which relation leads to populates the type of the pydantic field to use and type of the target column field.
Arguments:
to (Model class): target related ormar Modelnullable (bool): marks field as optional/ required
Returns:
(tuple with target pydantic type and target col type): Tuple[List, Any]
ManyToMany
ManyToMany(to: "ToType", through: Optional["ToType"] = None, *, name: str = None, unique: bool = False, virtual: bool = False, **kwargs: Any, ,) -> "RelationProxy[T]"
Despite a name it's a function that returns constructed ManyToManyField. This function is actually used in model declaration (as ormar.ManyToMany(ToModel, through=ThroughModel)).
Accepts number of relation setting parameters as well as all BaseField ones.
Arguments:
to (Model class): target related ormar Modelthrough (Model class): through model for m2m relationname (str): name of the database field - later called aliasunique (bool): parameter passed to sqlalchemy.ForeignKey, unique flagvirtual (bool): marks if relation is virtual. It is for reversed FK and auto generated FK on through model in Many2Many relations.kwargs (Any): all other args to be populated by BaseField
Returns:
(ManyToManyField): ormar ManyToManyField with m2m relation to selected model
ManyToManyField Objects
class ManyToManyField(ForeignKeyField, ormar.QuerySetProtocol, ormar.RelationProtocol)
Actual class returned from ManyToMany function call and stored in model_fields.
get_source_related_name
| get_source_related_name() -> str
Returns name to use for source relation name.
For FK it's the same, differs for m2m fields.
It's either set as related_name or by default it's field name.
Returns:
(str): name of the related_name or default related name.
has_unresolved_forward_refs
| has_unresolved_forward_refs() -> bool
Verifies if the filed has any ForwardRefs that require updating before the model can be used.
Returns:
(bool): result of the check
evaluate_forward_ref
| evaluate_forward_ref(globalns: Any, localns: Any) -> None
Evaluates the ForwardRef to actual Field based on global and local namespaces
Arguments:
globalns (Any): global namespacelocalns (Any): local namespace
Returns:
(None): None
get_relation_name
| get_relation_name() -> str
Returns name of the relation, which can be a own name or through model names for m2m models
Returns:
(bool): result of the check
get_source_model
| get_source_model() -> Type["Model"]
Returns model from which the relation comes -> either owner or through model
Returns:
(Type["Model"]): source model
create_default_through_model
| create_default_through_model() -> None
Creates default empty through model if no additional fields are required.