我想在Django模板中做一个Numeric for Loop。经过一番搜索,我发现了一个非常好的片段: https://djangosnippets.org/snippets/779/
有了它,我可以做到
Syntax:
{% num_range 5 as some_range %}
{% for i in some_range %}
{{ i }}: Something I want to repeat\n
{% endfor %}
Produces:
0: Something I want to repeat
1: Something I want to repeat
2: Something I want to repeat
3: Something I want to repeat
4: Something I want to repeat
但是,似乎我只能在{%num_range%}标签上使用一个数字(例如,这里是5)。
问题在于我在' 5'的位置使用了一个上下文变量。假设我有一个上下文{{times}},这是一个整数变量。我怎么能这样做:
{% num_range times as some_range %}
然后使用' some_range'在{%for%}代码?
答案 0 :(得分:0)
我没有测试过这个,但我认为它应该可行。请尝试在代码段中的RangeNode
类下替换此内容:
def render(self, context):
context[self.context_name] = range(int(self.num))
return ""
有了这个
def render(self, context):
try:
num = int(self.num)
except ValueError:
num = int(context[self.num])
context[self.context_name] = range(num)
return ""