mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	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:
		| @@ -1,5 +1,7 @@ | ||||
| "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 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 | ||||
| @@ -22,14 +24,11 @@ class CommentNode(Node): | ||||
|  | ||||
| class CycleNode(Node): | ||||
|     def __init__(self, cyclevars, variable_name=None): | ||||
|         self.cyclevars = cyclevars | ||||
|         self.cyclevars_len = len(cyclevars) | ||||
|         self.counter = -1 | ||||
|         self.cycle_iter = itertools_cycle(cyclevars) | ||||
|         self.variable_name = variable_name | ||||
|  | ||||
|     def render(self, context): | ||||
|         self.counter += 1 | ||||
|         value = self.cyclevars[self.counter % self.cyclevars_len] | ||||
|         value = self.cycle_iter.next() | ||||
|         value = Variable(value).resolve(context) | ||||
|         if self.variable_name: | ||||
|             context[self.variable_name] = value | ||||
|   | ||||
		Reference in New Issue
	
	Block a user