from django import template
register = template.Library()

@register.filter
def sublist(value, arg):
    """
    Usage: list|sublist:"a:b"
    Returns list[a:b]
    Accepts ":b" and "a:" shortcuts
    Note that the double quotes are necessary
    """
    try:
        arg = str(arg)
        mylist = list(value)
    except (ValueError, TypeError):
        return value
    if arg.find(':') < 0:
        return value
    a, b = arg.split(':')[:2]
    if a == "":
        a = None
    else:
        try:
            a = int(a)
        except ValueError:
            return value
    if b == "":
        b = None
    else:
        try:
            b = int(b)
        except ValueError:
            return value
    return mylist[a:b]