Fixes #3529 -- more explicit documentation about Context.update. Thanks for the patch, ggetzie.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14689 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
ff7c243b4c
commit
4c51986790
|
@ -74,7 +74,7 @@ class Context(BaseContext):
|
||||||
super(Context, self).__init__(dict_)
|
super(Context, self).__init__(dict_)
|
||||||
|
|
||||||
def update(self, other_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__'):
|
if not hasattr(other_dict, '__getitem__'):
|
||||||
raise TypeError('other_dict must be a mapping (dictionary-like) object.')
|
raise TypeError('other_dict must be a mapping (dictionary-like) object.')
|
||||||
self.dicts.append(other_dict)
|
self.dicts.append(other_dict)
|
||||||
|
|
|
@ -281,6 +281,22 @@ If you ``pop()`` too much, it'll raise
|
||||||
...
|
...
|
||||||
django.template.ContextPopException
|
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
|
Using a ``Context`` as a stack comes in handy in some custom template tags, as
|
||||||
you'll see below.
|
you'll see below.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue