From 3a0fba5a60448f90db2c7f1a479bc6631a9cf12d Mon Sep 17 00:00:00 2001 From: collerek Date: Sat, 9 Oct 2021 20:21:22 +0200 Subject: [PATCH] switch to expand relationship to allow pk values as models --- ormar/models/newbasemodel.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/ormar/models/newbasemodel.py b/ormar/models/newbasemodel.py index 5ba449f..19f6634 100644 --- a/ormar/models/newbasemodel.py +++ b/ormar/models/newbasemodel.py @@ -823,25 +823,17 @@ class NewBaseModel(pydantic.BaseModel, ModelTableProxy, metaclass=ModelMetaclass value_to_set = [value_to_set] relation_field = cls.Meta.model_fields[relation] relation_value = [ - cls.construct_from_dict_if_required(relation_field, value=x) + relation_field.expand_relationship(x, model, to_register=False) for x in value_to_set ] for child in relation_value: model._orm.add( - parent=child, + parent=cast("Model", child), child=cast("Model", model), field=cast("ForeignKeyField", relation_field), ) - @staticmethod - def construct_from_dict_if_required( - relation_field: "BaseField", value: Any - ) -> "Model": - return ( - relation_field.to.construct(**value) if isinstance(value, dict) else value - ) - def update_from_dict(self, value_dict: Dict) -> "NewBaseModel": """ Updates self with values of fields passed in the dictionary.