Login

Humanize lists of strings in templates

Author:
ChipX86
Posted:
June 10, 2007
Language:
Python
Version:
.96
Tags:
filter lists filters humanize
Score:
2 (after 2 ratings)

A simple template filter for taking a list and humanizing it, converting:

["foo", "bar"] to "foo and bar"

["foo", "bar", "baz"] to "foo, bar and baz"

["foo", "bar", "baz", "42"] to "foo, bar, baz and 42"

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
@register.filter
def humanize_list(value):
    if len(value) == 0:
        return ""
    elif len(value) == 1:
        return value[0]

    s = ", ".join(value[:-1])

    if len(value) > 3:
        s += ","

    return "%s and %s" % (s, value[-1])

More like this

  1. Flatpage Suggester Template tag for 404 templates by bradmontgomery 5 years, 5 months ago
  2. {% ifthis FOO isoneof BAR BAZ ... %} by sjl 5 years, 1 month ago
  3. Text Highlighting Filter by girasquid 6 years, 6 months ago
  4. Template tag: Group variables into list by Killarny 6 years, 3 months ago
  5. Split a string to a list and add to select options by xuqingkuang 6 years, 2 months ago

Comments

Please login first before commenting.