Skip to content

Commit 4dba2ed

Browse files
committed
Add Field.value_is_model_instance
1 parent 84c8299 commit 4dba2ed

File tree

3 files changed

+5
-1
lines changed

3 files changed

+5
-1
lines changed

django_mongodb_backend/compiler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -746,7 +746,7 @@ def execute_sql(self, result_type):
746746
elif hasattr(value, "prepare_database_save"):
747747
if field.remote_field:
748748
value = value.prepare_database_save(field)
749-
elif not hasattr(field, "embedded_model"):
749+
elif not getattr(field, "value_is_model_instance", False):
750750
raise TypeError(
751751
f"Tried to update field {field} with a model "
752752
f"instance, {value!r}. Use a value compatible with "

django_mongodb_backend/fields/embedded_model.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
class EmbeddedModelField(models.Field):
1313
"""Field that stores a model instance."""
1414

15+
value_is_model_instance = True
16+
1517
def __init__(self, embedded_model, *args, **kwargs):
1618
"""
1719
`embedded_model` is the model class of the instance to be stored.

django_mongodb_backend/fields/embedded_model_array.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414

1515
class EmbeddedModelArrayField(ArrayField):
16+
value_is_model_instance = True
17+
1618
def __init__(self, embedded_model, **kwargs):
1719
if "size" in kwargs:
1820
raise ValueError("EmbeddedModelArrayField does not support size.")

0 commit comments

Comments
 (0)