Iterates through model_fields of given model and verifies if all reverse relation have been populated on related models. If the reverse relation has not been set before it's set here. :param model: model on which relation should be checked and registered :type model: Model cla
(model: type["Model"])
| 89 | |
| 90 | |
| 91 | def expand_reverse_relationships(model: type["Model"]) -> None: |
| 92 | """ |
| 93 | Iterates through model_fields of given model and verifies if all reverse |
| 94 | relation have been populated on related models. |
| 95 | |
| 96 | If the reverse relation has not been set before it's set here. |
| 97 | |
| 98 | :param model: model on which relation should be checked and registered |
| 99 | :type model: Model class |
| 100 | """ |
| 101 | model_fields = list(model.ormar_config.model_fields.values()) |
| 102 | for model_field in model_fields: |
| 103 | if ( |
| 104 | model_field.is_relation |
| 105 | and not model_field.has_unresolved_forward_refs() |
| 106 | and not model_field.is_through |
| 107 | ): |
| 108 | model_field = cast("ForeignKeyField", model_field) |
| 109 | expand_reverse_relationship(model_field=model_field) |
| 110 | |
| 111 | |
| 112 | def register_reverse_model_fields(model_field: "ForeignKeyField") -> None: |
no test coverage detected