def transform(self, record): document = {} for field_name, field in self.fields.items(): data = None try: if field.attribute is None: if field.solr_field.dynamic: value = getattr( self, 'transform_%s' % field.solr_field.display_name(field_name))(record) data = ((field_name, value), ) else: value = getattr(self, 'transform_%s' % field_name)(record) data = ((field_name, value), ) else: value = record for name in field.attribute.split('.'): if value is None: raise AttributeError( 'Record: %s does not contain: %s currently trying to get: %s' % (record, field.attribute, name)) value = get_attribute_or_callable(value, name) data = ((field_name, value), ) except AttributeError: if not field.optional: raise else: if data: for name, value in data: if value: document[name] = value return document
def transform(self, record): document = {} for field_name, field in self.fields.items(): data = None try: if field.attribute is None: if field.solr_field.dynamic: if field_name.endswith('_1_TO_X'): field_name = field_name.replace('_1_TO_X', '%s') items = getattr(self, 'transform_%s' % (field_name % ''))(record) data = [ (field_name % ('_%s' % x), y) for x, y in items.items() ] else: value = getattr(self, 'transform_%s' % field.solr_field.display_name(field_name))(record) data = ((field_name, value),) else: value = getattr(self, 'transform_%s' % field_name)(record) data = ((field_name, value),) else: value = record for name in field.attribute.split('.'): if value is None: raise AttributeError('Record: `%s` does not contain: `%s` currently trying to get: `%s`' % (record, field.attribute, name)) value = get_attribute_or_callable(value, name) data = ((field_name, value),) except AttributeError: if not field.optional: raise else: if data: for name, value in data: if value: document[name] = value return document
def transform(self, record): document = {} for field_name, field in self.fields.items(): data = None try: if field.attribute is None: if field.solr_field.dynamic: value = getattr( self, 'transform_%s' % field.solr_field.display_name(field_name) )(record) data = ((field_name, value),) else: value = getattr(self, 'transform_%s' % field_name)(record) data = ((field_name, value),) else: value = record for name in field.attribute.split('.'): if value is None: raise AttributeError( 'Record: %s does not contain: %s currently trying to get: %s' % ( record, field.attribute, name )) value = get_attribute_or_callable(value, name) data = ((field_name, value),) except AttributeError: if not field.optional: raise else: if data: for name, value in data: if value: document[name] = value return document