3.0 KiB
models.mixins.relation_mixin
RelationMixin Objects
class RelationMixin()
Used to return relation fields/names etc. from given model
extract_db_own_fields
| @classmethod
| extract_db_own_fields(cls) -> Set
Returns only fields that are stored in the own database table, exclude all related fields.
Returns:
Set: set of model fields with relation fields excluded
extract_related_fields
| @classmethod
| extract_related_fields(cls) -> List["ForeignKeyField"]
Returns List of ormar Fields for all relations declared on a model. List is cached in cls._related_fields for quicker access.
Returns:
List: list of related fields
extract_through_names
| @classmethod
| extract_through_names(cls) -> Set[str]
Extracts related fields through names which are shortcuts to through models.
Returns:
Set: set of related through fields names
extract_related_names
| @classmethod
| extract_related_names(cls) -> Set[str]
Returns List of fields names for all relations declared on a model. List is cached in cls._related_names for quicker access.
Returns:
Set: set of related fields names
_extract_db_related_names
| @classmethod
| _extract_db_related_names(cls) -> Set
Returns only fields that are stored in the own database table, exclude related fields that are not stored as foreign keys on given model.
Returns:
Set: set of model fields with non fk relation fields excluded
_iterate_related_models
| @classmethod
| _iterate_related_models(cls, node_list: NodeList = None, source_relation: str = None) -> List[str]
Iterates related models recursively to extract relation strings of nested not visited models.
Returns:
List[str]: list of relation strings to be passed to select_related
_get_final_relations
| @staticmethod
| _get_final_relations(processed_relations: List, source_relation: Optional[str]) -> List[str]
Helper method to prefix nested relation strings with current source relation
Arguments:
processed_relations(List[str]): list of already processed relation strsource_relation(str): name of the current relation
Returns:
List[str]: list of relation strings to be passed to select_related