'Fetches and adds/alters data before indexing.'

def prepare(self, obj):

    self.prepared_data = {ID: get_identifier(obj), DJANGO_CT: get_model_ct(obj), DJANGO_ID: force_text(obj.pk)}
    for (field_name, field) in self.fields.items():
        self.prepared_data[field.index_fieldname] = field.prepare(obj)
        if hasattr(self, (u'prepare_%s' % field_name)):
            value = getattr(self, (u'prepare_%s' % field_name))(obj)
            self.prepared_data[field.index_fieldname] = value
    return self.prepared_data
