Django

Code

Changeset 6998

Show
Ignore:
Timestamp:
01/05/08 21:53:33 (6 months ago)
Author:
mtredinnick
Message:

Fixed #5567 -- Added a "last" filter. Based on a patch from darkpixel.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/template/defaultfilters.py

    r6997 r6998  
    449449        return data 
    450450join.is_safe = True 
     451 
     452def last(value): 
     453    "Returns the last item in a list" 
     454    try: 
     455        return value[-1] 
     456    except IndexError: 
     457        return u'' 
     458last.is_safe = True 
    451459 
    452460def length(value): 
     
    801809register.filter(iriencode) 
    802810register.filter(join) 
     811register.filter(last) 
    803812register.filter(length) 
    804813register.filter(length_is) 
  • django/trunk/docs/templates.txt

    r6913 r6998  
    14041404Joins a list with a string, like Python's ``str.join(list)``. 
    14051405 
     1406last 
     1407~~~~ 
     1408 
     1409Returns the last item in a list. 
     1410 
    14061411length 
    14071412~~~~~~ 
  • django/trunk/tests/regressiontests/templates/filters.py

    r6950 r6998  
    180180        'filter-first02': ('{% autoescape off %}{{ a|first }} {{ b|first }}{% endautoescape %}', {"a": ["a&b", "x"], "b": [mark_safe("a&b"), "x"]}, "a&b a&b"), 
    181181 
     182        'filter-last01': ('{{ a|last }} {{ b|last }}', {"a": ["x", "a&b"], "b": ["x", mark_safe("a&b")]}, "a&b a&b"), 
     183        'filter-last02': ('{% autoescape off %}{{ a|last }} {{ b|last }}{% endautoescape %}', {"a": ["x", "a&b"], "b": ["x", mark_safe("a&b")]}, "a&b a&b"), 
     184 
    182185        'filter-random01': ('{{ a|random }} {{ b|random }}', {"a": ["a&b", "a&b"], "b": [mark_safe("a&b"), mark_safe("a&b")]}, "a&b a&b"), 
    183186        'filter-random02': ('{% autoescape off %}{{ a|random }} {{ b|random }}{% endautoescape %}', {"a": ["a&b", "a&b"], "b": [mark_safe("a&b"), mark_safe("a&b")]}, "a&b a&b"),