Made use of itertools.cycle
for the cycle
template tag.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6636 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
5997cb8ad4
commit
2a48fc5007
@ -1,5 +1,7 @@
|
|||||||
"Default tags used by the template system, available to all templates."
|
"Default tags used by the template system, available to all templates."
|
||||||
|
|
||||||
|
from itertools import cycle as itertools_cycle
|
||||||
|
|
||||||
from django.template import Node, NodeList, Template, Context, Variable
|
from django.template import Node, NodeList, Template, Context, Variable
|
||||||
from django.template import TemplateSyntaxError, VariableDoesNotExist, BLOCK_TAG_START, BLOCK_TAG_END, VARIABLE_TAG_START, VARIABLE_TAG_END, SINGLE_BRACE_START, SINGLE_BRACE_END, COMMENT_TAG_START, COMMENT_TAG_END
|
from django.template import TemplateSyntaxError, VariableDoesNotExist, BLOCK_TAG_START, BLOCK_TAG_END, VARIABLE_TAG_START, VARIABLE_TAG_END, SINGLE_BRACE_START, SINGLE_BRACE_END, COMMENT_TAG_START, COMMENT_TAG_END
|
||||||
from django.template import get_library, Library, InvalidTemplateLibrary
|
from django.template import get_library, Library, InvalidTemplateLibrary
|
||||||
@ -22,14 +24,11 @@ class CommentNode(Node):
|
|||||||
|
|
||||||
class CycleNode(Node):
|
class CycleNode(Node):
|
||||||
def __init__(self, cyclevars, variable_name=None):
|
def __init__(self, cyclevars, variable_name=None):
|
||||||
self.cyclevars = cyclevars
|
self.cycle_iter = itertools_cycle(cyclevars)
|
||||||
self.cyclevars_len = len(cyclevars)
|
|
||||||
self.counter = -1
|
|
||||||
self.variable_name = variable_name
|
self.variable_name = variable_name
|
||||||
|
|
||||||
def render(self, context):
|
def render(self, context):
|
||||||
self.counter += 1
|
value = self.cycle_iter.next()
|
||||||
value = self.cyclevars[self.counter % self.cyclevars_len]
|
|
||||||
value = Variable(value).resolve(context)
|
value = Variable(value).resolve(context)
|
||||||
if self.variable_name:
|
if self.variable_name:
|
||||||
context[self.variable_name] = value
|
context[self.variable_name] = value
|
||||||
|
Loading…
x
Reference in New Issue
Block a user