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 | @register.filter
def cap(value):
namelist = value.split(' ')
fixed = ''
for name in namelist:
name = name.lower()
# fixes mcdunnough
if name.startswith('mc'):
sub = name.split('mc')
name = "Mc" + sub[1].capitalize()
# fixes "o'neill"
elif name.startswith('o\''):
sub = name.split('o\'')
name = "O'" + sub[1].capitalize()
else: name = name.capitalize()
nlist = name.split('-')
for n in nlist:
if len(n) > 1:
up = n[0].upper()
old = "-%s" % (n[0],)
new = "-%s" % (up,)
name = name.replace(old,new)
fixed = fixed + " " + name
return fixed
|
Comments
Thanks, this is much more useful than Pythons own capitalization methods!
#