Ticket #2454: for-reset-ifchanged.diff

File for-reset-ifchanged.diff, 922 bytes (added by dummy@…, 9 years ago)
  • django/template/defaulttags.py

     
    100100                for index in range(len(data)-1, -1, -1):
    101101                    yield data[index]
    102102            values = reverse(values)
     103
     104        # reset the inner ifchanged-nodes
     105        for node in self.nodelist_loop:
     106            if type(node) == IfChangedNode:
     107                node.reset()
     108
    103109        for i, item in enumerate(values):
    104110            context['forloop'] = {
    105111                # shortcuts for current loop iteration number
     
    137143        else:
    138144            return ''
    139145
     146    def reset(self):
     147        self._last_seen = None
     148
    140149class IfEqualNode(Node):
    141150    def __init__(self, var1, var2, nodelist_true, nodelist_false, negate):
    142151        self.var1, self.var2 = var1, var2
Back to Top