Add missing imports and models to the examples in the template layer documentation
This commit is contained in:
parent
a7e2835276
commit
7264e5c661
|
@ -300,9 +300,12 @@ Template filter code falls into one of two situations:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
|
from django import template
|
||||||
from django.utils.html import conditional_escape
|
from django.utils.html import conditional_escape
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
|
|
||||||
|
register = template.Library()
|
||||||
|
|
||||||
@register.filter(needs_autoescape=True)
|
@register.filter(needs_autoescape=True)
|
||||||
def initial_letter_filter(text, autoescape=None):
|
def initial_letter_filter(text, autoescape=None):
|
||||||
first, other = text[0], text[1:]
|
first, other = text[0], text[1:]
|
||||||
|
@ -454,8 +457,9 @@ Continuing the above example, we need to define ``CurrentTimeNode``:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
from django import template
|
|
||||||
import datetime
|
import datetime
|
||||||
|
from django import template
|
||||||
|
|
||||||
class CurrentTimeNode(template.Node):
|
class CurrentTimeNode(template.Node):
|
||||||
def __init__(self, format_string):
|
def __init__(self, format_string):
|
||||||
self.format_string = format_string
|
self.format_string = format_string
|
||||||
|
@ -498,6 +502,8 @@ The ``__init__`` method for the ``Context`` class takes a parameter called
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
|
from django.template import Context
|
||||||
|
|
||||||
def render(self, context):
|
def render(self, context):
|
||||||
# ...
|
# ...
|
||||||
new_context = Context({'var': obj}, autoescape=context.autoescape)
|
new_context = Context({'var': obj}, autoescape=context.autoescape)
|
||||||
|
@ -545,7 +551,10 @@ A naive implementation of ``CycleNode`` might look something like this:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
class CycleNode(Node):
|
import itertools
|
||||||
|
from django import template
|
||||||
|
|
||||||
|
class CycleNode(template.Node):
|
||||||
def __init__(self, cyclevars):
|
def __init__(self, cyclevars):
|
||||||
self.cycle_iter = itertools.cycle(cyclevars)
|
self.cycle_iter = itertools.cycle(cyclevars)
|
||||||
def render(self, context):
|
def render(self, context):
|
||||||
|
@ -576,7 +585,7 @@ Let's refactor our ``CycleNode`` implementation to use the ``render_context``:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
class CycleNode(Node):
|
class CycleNode(template.Node):
|
||||||
def __init__(self, cyclevars):
|
def __init__(self, cyclevars):
|
||||||
self.cyclevars = cyclevars
|
self.cyclevars = cyclevars
|
||||||
def render(self, context):
|
def render(self, context):
|
||||||
|
@ -664,6 +673,7 @@ Now your tag should begin to look like this:
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
from django import template
|
from django import template
|
||||||
|
|
||||||
def do_format_time(parser, token):
|
def do_format_time(parser, token):
|
||||||
try:
|
try:
|
||||||
# split_contents() knows not to split quoted strings.
|
# split_contents() knows not to split quoted strings.
|
||||||
|
@ -722,6 +732,11 @@ Our earlier ``current_time`` function could thus be written like this:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
from django import template
|
||||||
|
|
||||||
|
register = template.Library()
|
||||||
|
|
||||||
def current_time(format_string):
|
def current_time(format_string):
|
||||||
return datetime.datetime.now().strftime(format_string)
|
return datetime.datetime.now().strftime(format_string)
|
||||||
|
|
||||||
|
@ -965,6 +980,9 @@ outputting it:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
from django import template
|
||||||
|
|
||||||
class CurrentTimeNode2(template.Node):
|
class CurrentTimeNode2(template.Node):
|
||||||
def __init__(self, format_string):
|
def __init__(self, format_string):
|
||||||
self.format_string = format_string
|
self.format_string = format_string
|
||||||
|
|
|
@ -286,6 +286,7 @@ fully-populated dictionary to ``Context()``. But you can add and delete items
|
||||||
from a ``Context`` object once it's been instantiated, too, using standard
|
from a ``Context`` object once it's been instantiated, too, using standard
|
||||||
dictionary syntax::
|
dictionary syntax::
|
||||||
|
|
||||||
|
>>> from django.template import Context
|
||||||
>>> c = Context({"foo": "bar"})
|
>>> c = Context({"foo": "bar"})
|
||||||
>>> c['foo']
|
>>> c['foo']
|
||||||
'bar'
|
'bar'
|
||||||
|
@ -397,6 +398,9 @@ Also, you can give ``RequestContext`` a list of additional processors, using the
|
||||||
optional, third positional argument, ``processors``. In this example, the
|
optional, third positional argument, ``processors``. In this example, the
|
||||||
``RequestContext`` instance gets a ``ip_address`` variable::
|
``RequestContext`` instance gets a ``ip_address`` variable::
|
||||||
|
|
||||||
|
from django.http import HttpResponse
|
||||||
|
from django.template import RequestContext
|
||||||
|
|
||||||
def ip_address_processor(request):
|
def ip_address_processor(request):
|
||||||
return {'ip_address': request.META['REMOTE_ADDR']}
|
return {'ip_address': request.META['REMOTE_ADDR']}
|
||||||
|
|
||||||
|
@ -417,6 +421,9 @@ optional, third positional argument, ``processors``. In this example, the
|
||||||
:func:`~django.shortcuts.render_to_response()`: a ``RequestContext``
|
:func:`~django.shortcuts.render_to_response()`: a ``RequestContext``
|
||||||
instance. Your code might look like this::
|
instance. Your code might look like this::
|
||||||
|
|
||||||
|
from django.shortcuts import render_to_response
|
||||||
|
from django.template import RequestContext
|
||||||
|
|
||||||
def some_view(request):
|
def some_view(request):
|
||||||
# ...
|
# ...
|
||||||
return render_to_response('my_template.html',
|
return render_to_response('my_template.html',
|
||||||
|
|
Loading…
Reference in New Issue