2014-09-10 181 views
0

在鲭渲染飞名单,我们可以写下面生成动态HTML使用Django模板

<% months=['Jan','Feb', .. 'Dec'] %> 
<% weeks=['Mon','Tue',..'Sun'] %> 
% for m in months: 
    % for w in weeks: 
     ${m} ${w} 
    % endfor 
% endfor 

最新的推荐的编码来获得在Django相同的(Django模板),而不从上下文变量来列表?

+0

建议的做法是不包含这种功能在你的模板中使用Django的自定义模板标签过滤器。仅仅因为你可以做到这一点,并不意味着它是一个好主意。 – 2014-09-11 06:26:39

回答

0

我下templatetags/my_filters.py

from django import template 

register = template.Library() 

@register.assignment_tag 
def weekdays(): 
    return ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] 

,并在模板

{% load my_filters %} 

{% weekdays as w %} 
{% for i in w %} 
    <option value="{{forloop.counter0}}">{{i}}</option> 
{% endfor %}