Files
ormar/docs/api/fields/many-to-many.md

1.7 KiB

fields.many_to_many

REF_PREFIX

ManyToMany

ManyToMany(to: Type["Model"], through: Type["Model"], *, name: str = None, unique: bool = False, virtual: bool = False, **kwargs: Any) -> Any

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 Model
  • through (Model class): through model for m2m relation
  • name (str): name of the database field - later called alias
  • unique (bool): parameter passed to sqlalchemy.ForeignKey, unique flag
  • virtual (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.

through

default_target_field_name

 | @classmethod
 | default_target_field_name(cls) -> str

Returns default target model name on through model.

Returns:

(str): name of the field