Skip to content

Commit 2865e13

Browse files
committed
Add deconstruct method
1 parent 6460625 commit 2865e13

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

django_mongodb_backend/indexes.py

+5
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,11 @@ def _check_similarity_functions(self, similarities):
212212
f"'are {','.join(self.ALLOWED_SIMILARITY_FUNCTIONS)}"
213213
)
214214

215+
def deconstruct(self):
216+
path, args, kwargs = super().deconstruct()
217+
kwargs["similarities"] = self.similarities
218+
return path, args, kwargs
219+
215220
def get_pymongo_index_model(
216221
self, model, schema_editor, field=None, unique=False, column_prefix=""
217222
):

tests/indexes_/test_atlas_indexes.py

+19
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,25 @@ def assertAddRemoveIndex(self, editor, model, index):
112112
),
113113
)
114114

115+
def test_deconstruct_default_similarity(self):
116+
index = VectorSearchIndex(
117+
name="recent_article_idx",
118+
fields=["number"],
119+
)
120+
name, args, kwargs = index.deconstruct()
121+
new = VectorSearchIndex(*args, **kwargs)
122+
self.assertEqual(new.similarities, index.similarities)
123+
124+
def test_deconstruct_with_similarities(self):
125+
index = VectorSearchIndex(
126+
name="recent_article_idx",
127+
fields=["number", "number"],
128+
similarities=["cosine", "dotProduct"],
129+
)
130+
path, args, kwargs = index.deconstruct()
131+
new = VectorSearchIndex(*args, **kwargs)
132+
self.assertEqual(new.similarities, index.similarities)
133+
115134
def test_simple_vector_search(self):
116135
with connection.schema_editor() as editor:
117136
index = VectorSearchIndex(

0 commit comments

Comments
 (0)