@@ -159,8 +159,8 @@ def parallel_bulk(self, actions, **kwargs):
159159 @classmethod
160160 def generate_id (cls , object_instance ):
161161 """
162- The default behavior is to use the Django object's pk (id) as the
163- elasticseach index id (_id). If needed, this method can be overloaded
162+ The default behavior is to use the Django object's pk (id) as the
163+ elasticseach index id (_id). If needed, this method can be overloaded
164164 to change this default behavior.
165165 """
166166 return object_instance .pk
@@ -177,7 +177,8 @@ def _prepare_action(self, object_instance, action):
177177
178178 def _get_actions (self , object_list , action ):
179179 for object_instance in object_list :
180- yield self ._prepare_action (object_instance , action )
180+ if self .should_index_object (object_instance ):
181+ yield self ._prepare_action (object_instance , action )
181182
182183 def _bulk (self , * args , ** kwargs ):
183184 """Helper for switching between normal and parallel bulk operation"""
@@ -187,6 +188,13 @@ def _bulk(self, *args, **kwargs):
187188 else :
188189 return self .bulk (* args , ** kwargs )
189190
191+ def should_index_object (self , obj ):
192+ """
193+ Overwriting this method and returning a boolean value
194+ should determine whether the object should be indexed.
195+ """
196+ return True
197+
190198 def update (self , thing , refresh = None , action = 'index' , parallel = False , ** kwargs ):
191199 """
192200 Update each document in ES for a model, iterable of models or queryset
0 commit comments