/
utils.py
35 lines (25 loc) · 976 Bytes
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
structs = (
('name', 'surname', 'birth', 'img'),
('email', 'jabber', 'skype', 'other', 'bio'),
)
multiline = ('bio', 'other', 'img')
class Render(object):
def get_struct(self, get, reverse):
if reverse:
local_structs = [struct[::-1] for struct in structs]
else:
local_structs = structs
return [[dict(get(item).items() + [('multiline', (item in multiline))])
for item in struct]
for struct in local_structs]
class DataRender(Render):
def __init__(self, model):
self.model = model
def render(self):
field_types = dict([(field.name, field.verbose_name) \
for field in self.model._meta.fields])
get = lambda item: {'value':\
unicode(getattr(self.model, item)) if item != 'img'\
else '<img src="%s" />' % getattr(self.model, item).url,
'label': field_types[item]}
return self.get_struct(get, False)