diff --git a/django_mongodb_backend/fields/embedded_model.py b/django_mongodb_backend/fields/embedded_model.py index 4b49a471..6efc737e 100644 --- a/django_mongodb_backend/fields/embedded_model.py +++ b/django_mongodb_backend/fields/embedded_model.py @@ -109,10 +109,13 @@ def get_db_prep_save(self, embedded_instance, connection): if embedded_instance is None: return None if not isinstance(embedded_instance, self.embedded_model): - raise TypeError( - f"Expected instance of type {self.embedded_model!r}, not " - f"{type(embedded_instance)!r}." - ) + try: + embedded_instance = self.embedded_model(**embedded_instance) + except TypeError as e: + raise TypeError( + f"Expected instance of type {self.embedded_model!r}, not " + f"{type(embedded_instance)!r}." + ) field_values = {} add = embedded_instance._state.adding for field in embedded_instance._meta.fields: