Skip to content

Commit

Permalink
Fixes #3529 -- more explicit documentation about Context.update. Than…
Browse files Browse the repository at this point in the history
…ks for the patch, ggetzie.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14689 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
SmileyChris committed Nov 24, 2010
1 parent ff7c243 commit 4c51986
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
2 changes: 1 addition & 1 deletion django/template/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def __init__(self, dict_=None, autoescape=True, current_app=None, use_l10n=None)
super(Context, self).__init__(dict_)

def update(self, other_dict):
"Like dict.update(). Pushes an entire dictionary's keys and values onto the context."
"Pushes other_dict to the stack of dictionaries in the Context"
if not hasattr(other_dict, '__getitem__'):
raise TypeError('other_dict must be a mapping (dictionary-like) object.')
self.dicts.append(other_dict)
Expand Down
16 changes: 16 additions & 0 deletions docs/ref/templates/api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,22 @@ If you ``pop()`` too much, it'll raise
...
django.template.ContextPopException

In addition to ``push()`` and ``pop()``, the ``Context``
object also defines an ``update()`` method. This works like ``push()``
but takes a dictionary as an argument and pushes that dictionary onto
the stack instead of an empty one.

>>> c = Context()
>>> c['foo'] = 'first level'
>>> c.update({'foo': 'updated'})
{'foo': 'updated'}
>>> c['foo']
'updated'
>>> c.pop()
{'foo': 'updated'}
>>> c['foo']
'first level'

Using a ``Context`` as a stack comes in handy in some custom template tags, as
you'll see below.

Expand Down

0 comments on commit 4c51986

Please sign in to comment.