Returns list of fields names for all relations declared on a model. List is cached in cls._related_names for quicker access. :return: set of related fields names :rtype: set
(cls)
| 81 | |
| 82 | @classmethod |
| 83 | def extract_related_names(cls) -> set[str]: |
| 84 | """ |
| 85 | Returns list of fields names for all relations declared on a model. |
| 86 | List is cached in cls._related_names for quicker access. |
| 87 | |
| 88 | :return: set of related fields names |
| 89 | :rtype: set |
| 90 | """ |
| 91 | if cls._related_names is not None: |
| 92 | return cls._related_names |
| 93 | |
| 94 | related_names = set() |
| 95 | for name, field in cls.ormar_config.model_fields.items(): |
| 96 | if ( |
| 97 | isinstance(field, BaseField) |
| 98 | and field.is_relation |
| 99 | and not field.is_through |
| 100 | and not field.skip_field |
| 101 | ): |
| 102 | related_names.add(name) |
| 103 | cls._related_names = related_names |
| 104 | |
| 105 | return related_names |
| 106 | |
| 107 | @classmethod |
| 108 | def _extract_db_related_names(cls) -> set: |