kopia lustrzana https://github.com/wagtail/wagtail
Don't check whether the object exists when deleting it from search index
Fixes #2594pull/2407/merge
rodzic
7465e2eb91
commit
dc6f09ba40
|
@ -99,13 +99,13 @@ def class_is_indexed(cls):
|
|||
return issubclass(cls, Indexed) and issubclass(cls, models.Model) and not cls._meta.abstract
|
||||
|
||||
|
||||
def get_indexed_instance(instance):
|
||||
def get_indexed_instance(instance, check_exists=True):
|
||||
indexed_instance = instance.get_indexed_instance()
|
||||
if indexed_instance is None:
|
||||
return
|
||||
|
||||
# Make sure that the instance is in its class's indexed objects
|
||||
if not type(indexed_instance).get_indexed_objects().filter(pk=indexed_instance.pk).exists():
|
||||
if check_exists and not type(indexed_instance).get_indexed_objects().filter(pk=indexed_instance.pk).exists():
|
||||
return
|
||||
|
||||
return indexed_instance
|
||||
|
@ -124,7 +124,7 @@ def insert_or_update_object(instance):
|
|||
|
||||
|
||||
def remove_object(instance):
|
||||
indexed_instance = get_indexed_instance(instance)
|
||||
indexed_instance = get_indexed_instance(instance, check_exists=False)
|
||||
|
||||
if indexed_instance:
|
||||
for backend_name, backend in get_search_backends_with_name(with_auto_update=True):
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
import mock
|
||||
import unittest
|
||||
|
||||
from django.test import TestCase, override_settings
|
||||
|
||||
|
@ -104,7 +103,6 @@ class TestRemoveObject(TestCase):
|
|||
|
||||
backend().add.assert_called_with(obj)
|
||||
|
||||
@unittest.expectedFailure
|
||||
def test_removes_unsaved_object(self, backend):
|
||||
obj = models.SearchTest(title="Test")
|
||||
index.remove_object(obj)
|
||||
|
|
Ładowanie…
Reference in New Issue