Skip to content

Commit 2c1409e

Browse files
committed
INTPYTHON-778 Correct Polymorphic/EmbeddedModelField search index type
Also, correct EmbeddedModelField.db_type() to "object". ("embeddedDocuments" isn't a BSON type).
1 parent de6217c commit 2c1409e

File tree

6 files changed

+11
-3
lines changed

6 files changed

+11
-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

docs/releases/5.2.x.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ Bug fixes
2121
``EmbeddedModel``).
2222
- Made ``EmbeddedModel`` fields respect
2323
:attr:`~django.db.models.Field.db_column`.
24+
- Corrected the search index type of ``EmbeddedModelField`` and
25+
``PolymorphicEmbeddedModelField`` from ``embeddedDocuments`` to ``document``.
2426

2527
Deprecated features
2628
-------------------

tests/indexes_/test_search_indexes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def test_valid_fields(self):
159159
"type": "string",
160160
},
161161
"datetime": {"type": "date"},
162-
"embedded_model": {"dynamic": False, "fields": {}, "type": "embeddedDocuments"},
162+
"embedded_model": {"dynamic": False, "fields": {}, "type": "document"},
163163
"float": {
164164
"indexDoubles": True,
165165
"indexIntegers": True,

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(connection), "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(connection), "object")
23+
2124
def test_deconstruct(self):
2225
field = PolymorphicEmbeddedModelField(["Data"], null=True)
2326
field.name = "field_name"

0 commit comments

Comments
 (0)