      {% show_results poll %}
  
  ...and the output will be something like this:
  
  .. code-block:: html
  
      <ul>
        <li>First choice</li>
        <li>Second choice</li>
        <li>Third choice</li>
 
</s> remove     <ul>
      <li>First choice</li>
      <li>Second choice</li>
      <li>Third choice</li>
    </ul>
 </s> add Let's refactor our ``CycleNode`` implementation to use the ``render_context``:: </s> remove ...and the output will be something like this:
 </s> add The CycleNode is iterating, but it's iterating globally. As far as Thread 1
and Thread 2 are concerned, it's always returning the same value. This is
obviously not what we want! </s> remove     {% show_results poll %}
 </s> add 1. Thread 1 performs its first loop iteration, ``CycleNode.render()``
   returns 'row1'
2. Thread 2 performs its first loop iteration, ``CycleNode.render()``
   returns 'row2'
3. Thread 1 performs its second loop iteration, ``CycleNode.render()``
   returns 'row1'
4. Thread 2 performs its second loop iteration, ``CycleNode.render()``
   returns 'row2' </s> remove .. code-block:: html+django
 </s> add But, suppose we have two templates rendering the template snippet from above at
the same time: </s> remove First, define the function that takes the argument and produces a dictionary of
data for the result. The important point here is we only need to return a
dictionary, not anything more complex. This will be used as a template context
for the template fragment. Example::
 </s> add     class CycleNode(template.Node):
        def __init__(self, cyclevars):
            self.cyclevars = cyclevars
To address this problem, Django provides a ``render_context`` that's associated
with the ``context`` of the template that is currently being rendered. The
``render_context`` behaves like a Python dictionary, and should be used to
store ``Node`` state between invocations of the ``render`` method.
      {% show_results poll %}
  
  ...and the output will be something like this:
  
To address this problem, Django provides a ``render_context`` that's associated
with the ``context`` of the template that is currently being rendered. The
``render_context`` behaves like a Python dictionary, and should be used to
store ``Node`` state between invocations of the ``render`` method.
  
      <ul>
        <li>First choice</li>
        <li>Second choice</li>
        <li>Third choice</li>
keep keep keep keep replace keep keep keep keep keep
 Fixed #20435 -- Reordered the custom template tags docs.

Introduced the various shortcuts before explaining the more complex
parser/render functionality.

Also removed non-decorator syntax: it's been years since Django
supported a Python version without decorators. 
docs/howto/custom-template-tags.txt