Django模版中生成年份下拉列表的代码

2022-05-03 00:00:00 模版 下拉 年份

在Django中经常需要输出一个年份的下拉列表,用于日期和时间的选择,一般需要在view中定义一个年份的年份范围列表,然后在模版中输出,但每次都需要在view中进行定义比较麻烦,这里定义了一个filter,这样每次调用可以直接使用这个filter即可。
在filter.py中自定义一个get_range的过滤器:

@register.filter
def get_range(start, stop):
    """得到一个范围数组"""
    if start <= stop:
        result = list(range(start, stop+1))
    else:
        result = list(range(stop, start+1))
        result.reverse()

    return result

因为range函数是不包含截止数字的值的,所以这里为截止值默认加了1,比较符合个人的使用习惯。

Django模版中这样调用:
html <select name="{{ name }}"> <option value="">选择年</option> {% for y in 1900|get_range:2022 %} <option value="{{ y }}">{{ y }}</option> {% endfor %} </select>

相关文章