Skip to content

Commit af60d69

Browse files
committed
refactor
1 parent aa0dbe3 commit af60d69

File tree

5 files changed

+13
-23
lines changed

5 files changed

+13
-23
lines changed

ormar/models/helpers/validation.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,7 @@ def generate_model_example(model: Type["Model"], relation_map: Dict = None) -> D
108108
"""
109109
example: Dict[str, Any] = dict()
110110
relation_map = (
111-
relation_map
112-
if relation_map is not None
113-
else translate_list_to_dict(model._iterate_related_models())
111+
relation_map if relation_map is not None else model._related_models_dict()
114112
)
115113
for name, field in model.Meta.model_fields.items():
116114
populates_sample_fields_values(

ormar/models/mixins/merge_mixin.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,7 @@ def merge_two_instances(
8787
:rtype: Model
8888
"""
8989
relation_map = (
90-
relation_map
91-
if relation_map is not None
92-
else translate_list_to_dict(one._iterate_related_models())
90+
relation_map if relation_map is not None else one._related_models_dict()
9391
)
9492
for field_name in relation_map:
9593
current_field = getattr(one, field_name)

ormar/models/mixins/relation_mixin.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
from typing import Callable, Dict, List, Optional, Set, TYPE_CHECKING, cast
1+
from typing import Any, Callable, Dict, List, Optional, Set, TYPE_CHECKING, cast
22

33
from ormar import BaseField, ForeignKeyField
44
from ormar.models.traversible import NodeList
5+
from ormar.queryset.utils import translate_list_to_dict
56

67

78
class RelationMixin:
@@ -112,6 +113,13 @@ def _extract_db_related_names(cls) -> Set:
112113
}
113114
return related_names
114115

116+
@classmethod
117+
def _related_models_dict(cls) -> dict[str, Any]:
118+
if cls.__relation_map_dict__:
119+
return cls.__relation_map_dict__
120+
121+
return translate_list_to_dict(cls._iterate_related_models())
122+
115123
@classmethod
116124
def _iterate_related_models( # noqa: CCR001
117125
cls,

ormar/models/model.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,7 @@ async def save_related( # noqa: CCR001, CFQ002
153153
:rtype: int
154154
"""
155155
relation_map = (
156-
relation_map
157-
if relation_map is not None
158-
else translate_list_to_dict(self._iterate_related_models())
156+
relation_map if relation_map is not None else self._related_models_dict()
159157
)
160158
if exclude and isinstance(exclude, Set):
161159
exclude = translate_list_to_dict(exclude)

ormar/models/newbasemodel.py

+1-13
Original file line numberDiff line numberDiff line change
@@ -735,16 +735,6 @@ def _extract_nested_models( # noqa: CCR001, CFQ002
735735
except ReferenceError:
736736
dict_instance[field] = None
737737
return dict_instance
738-
739-
740-
@classmethod
741-
def _related_models_dict(cls) -> dict:
742-
if not cls.__relation_map_dict__:
743-
cls.__relation_map_dict__ = translate_list_to_dict(
744-
cls._iterate_related_models()
745-
)
746-
return cls.__relation_map_dict__
747-
748738

749739
def dict( # type: ignore # noqa A003
750740
self,
@@ -822,9 +812,7 @@ def dict( # type: ignore # noqa A003
822812
exclude = translate_list_to_dict(exclude)
823813

824814
relation_map = (
825-
relation_map
826-
if relation_map is not None
827-
else self._related_models_dict()
815+
relation_map if relation_map is not None else self._related_models_dict()
828816
)
829817
pk_only = getattr(self, "__pk_only__", False)
830818
if relation_map and not pk_only:

0 commit comments

Comments
 (0)