@register.filter
def clear_list(list, clear=None):
'''Template filters that clear list from unwanted elements, within django template.
Examples:
l = [1, '1', '', ' ', None, 'www.abc.com']
1)
{{l|clear_list}} -> [1, '1', '', ' ','www.abc.com']
2)
{{l|clear_list:1}} -> ['1', '', ' ', None, 'www.abc.com']
4)
{{l|clear_list:'1'}} -> [1, '', ' ', None, 'www.abc.com']
5)
{{l|clear_list:''}} -> [1, '1', ' ', None, 'www.abc.com']
6)
{{l|clear_list:' '}} -> [1, '1', '', None, 'www.abc.com']
7)
{{l|clear_list:'www.abc.com'}} -> [ 1, '1', '', ' ', None]
8)
x = some_object(...)
l = [1, 2, x]
{{l|clear_list:x}} -> [1, 2]
'''
try:
return [i for i in list if i!=clear]
except:
return list
Comments
Better way to do it:
PS. Don't use names for variables that are already in python builtins.
listis python function:Use for example
dataor evenlinstead.#