Skip to content

Commit 60d49de

Browse files
committed
Add deconstruct method
1 parent f7bc66e commit 60d49de

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
@@ -172,6 +172,11 @@ def _check_similarity_functions(self, similarities):
172172
f"'are {','.join(self.ALLOWED_SIMILARITY_FUNCTIONS)}"
173173
)
174174

175+
def deconstruct(self):
176+
path, args, kwargs = super().deconstruct()
177+
kwargs["similarities"] = self.similarities
178+
return path, args, kwargs
179+
175180
def get_pymongo_index_model(
176181
self, model, schema_editor, field=None, unique=False, column_prefix=""
177182
):

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)