2015-07-06 50 views
0

通過名單上有自定義模板標籤:迭代通過自定義模板標籤

@register.simple_tag 
def random_num(): 
    numbers = range(1,18) 
    shuffle(numbers) 
    return numbers 

模板:

{% for num in random_num %} 
    {{ num }} 
{% endfor %} 

給什麼。 {% random_num %}很好地打印整個列表,但我需要遍歷所有元素。問題是什麼?

回答

3

您不能使用templatetag作爲變量,所以:

{% for num in random_num %} 

不能工作。

您需要將您的templatetag更改爲assignment tag

@register.assignment_tag 
def random_num(): 
    numbers = range(1,18) 
    shuffle(numbers) 
    return numbers 

...,並在模板中使用as條款:

{% random_num as numlist %} 
{% for num in numlist %} 
    {{ num }} 
{% endfor %} 
+0

謝謝!不知道分配標籤.. –