def table(self): header = self.table_header for row in self.results: table_row = { 'obj': row.object, 'url': row.object.get_absolute_url(), 'data': [], } data = flatten_dict(row.object.to_search()) for name in header: values = [unicode(v) for v in data.get(name, ())] table_row['data'].append(' '.join(values)) yield table_row
def test_flatten_dict(self): data = { 'a': 1, 'b': 2, 'c': { 'b': 3, 'd': 4, } } self.assertEqual(flatten_dict(data), { 'a': [1], 'b': [3, 2], 'd': [4], 'c_b': [3], 'c_d': [4], })
def prepare_text(self, obj): buf = [] for key, values in flatten_dict(obj.to_search()).iteritems(): for value in values: buf.append('%s__=__%s'%(key, value)) return '\n'.join(buf)