Django模版中生成年份下拉列表的代码
在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>
相关文章