Skip to content

Commit 78854e3

Browse files
committed
Correct EmbeddedModelField.db_type() to "object"
"embeddedDocuments" isn't a BSON type.
1 parent d9dabd6 commit 78854e3

File tree

5 files changed

+9
-3
lines changed

5 files changed

+9
-3
lines changed

django_mongodb_backend/fields/embedded_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def __init__(self, embedded_model, *args, **kwargs):
2323
super().__init__(*args, **kwargs)
2424

2525
def db_type(self, connection):
26-
return "embeddedDocuments"
26+
return "object"
2727

2828
def check(self, **kwargs):
2929
from ..models import EmbeddedModel # noqa: PLC0415

django_mongodb_backend/fields/polymorphic_embedded_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def __init__(self, embedded_models, *args, **kwargs):
2525
super().__init__(*args, **kwargs)
2626

2727
def db_type(self, connection):
28-
return "embeddedDocuments"
28+
return "object"
2929

3030
def check(self, **kwargs):
3131
from ..models import EmbeddedModel # noqa: PLC0415

django_mongodb_backend/indexes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ def search_index_data_types(self, db_type):
141141
return "boolean"
142142
if db_type == "object":
143143
return "document"
144-
if db_type == "array":
144+
if db_type in {"array", "object"}:
145145
return "embeddedDocuments"
146146
return db_type
147147

tests/model_fields_/test_embedded_model.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@
3030

3131

3232
class MethodTests(SimpleTestCase):
33+
def test_db_type(self):
34+
self.assertEqual(EmbeddedModelField("Data").db_type(None), "object")
35+
3336
def test_deconstruct(self):
3437
field = EmbeddedModelField("Data", null=True)
3538
field.name = "field_name"

tests/model_fields_/test_polymorphic_embedded_model.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ def test_not_editable(self):
1818
field = PolymorphicEmbeddedModelField(["Data"], null=True)
1919
self.assertIs(field.editable, False)
2020

21+
def test_db_type(self):
22+
self.assertEqual(PolymorphicEmbeddedModelField(["Data"]).db_type(None), "object")
23+
2124
def test_deconstruct(self):
2225
field = PolymorphicEmbeddedModelField(["Data"], null=True)
2326
field.name = "field_name"

0 commit comments

Comments
 (0)