Fixed #4462 -- Use builtin reversed() function when available (in "for" tag).
Thanks, Brian Harring. git-svn-id: http://code.djangoproject.com/svn/django/trunk@5454 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
a33fb695e3
commit
03ecc00f6e
|
@ -7,6 +7,14 @@ from django.conf import settings
|
||||||
import sys
|
import sys
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
if not hasattr(__builtins__, 'reversed'):
|
||||||
|
# For Python 2.3.
|
||||||
|
# From http://www.python.org/doc/current/tut/node11.html
|
||||||
|
def reversed(data):
|
||||||
|
for index in xrange(len(data)-1, -1, -1):
|
||||||
|
yield data[index]
|
||||||
|
|
||||||
|
|
||||||
register = Library()
|
register = Library()
|
||||||
|
|
||||||
class CommentNode(Node):
|
class CommentNode(Node):
|
||||||
|
@ -103,11 +111,7 @@ class ForNode(Node):
|
||||||
values = list(values)
|
values = list(values)
|
||||||
len_values = len(values)
|
len_values = len(values)
|
||||||
if self.reversed:
|
if self.reversed:
|
||||||
# From http://www.python.org/doc/current/tut/node11.html
|
values = reversed(values)
|
||||||
def reverse(data):
|
|
||||||
for index in range(len(data)-1, -1, -1):
|
|
||||||
yield data[index]
|
|
||||||
values = reverse(values)
|
|
||||||
unpack = len(self.loopvars) > 1
|
unpack = len(self.loopvars) > 1
|
||||||
for i, item in enumerate(values):
|
for i, item in enumerate(values):
|
||||||
context['forloop'] = {
|
context['forloop'] = {
|
||||||
|
|
Loading…
Reference in New Issue