def class_prepared_callback(self, sender, **kwargs):
     schema_dict = {}
     for field_name in self.fields:
         field = self.model._meta.get_field_by_name(field_name)[0]
         schema_dict[field.name] = field_mapping[field.__class__]
     self.schema = Schema(**schema_dict)
     if self.index is None:
         self.index = Index(self.storage, schema=self.schema, create=True)
     self.searcher = self.index.searcher()
     if self.real_time:
         post_save.connect(self.post_save_callback, sender=self.model)
         post_delete.connect(self.post_delete_callback, sender=self.model)
 def __init__(self, *args, **kwargs):
     self.default = kwargs.pop("default", None)
     self.parser = None
     self.fields = kwargs.pop('fields', []) + ['id']
     self.real_time = kwargs.pop('real_time', True)
     if not os.path.lexists(STORAGE_DIR):
         os.makedirs(STORAGE_DIR)
     self.storage = store.FileStorage(STORAGE_DIR)
     try:
         self.index = Index(self.storage)
     except (IndexError, EmptyIndexError):
         self.index = None
     super(WhooshManager, self).__init__(*args, **kwargs)