Browse Source

Add missing imports and models to the examples in the template layer documentation

Silvan Spross 12 years ago
parent
commit
7264e5c661
2 changed files with 40 additions and 15 deletions
  1. 33 15
      docs/howto/custom-template-tags.txt
  2. 7 0
      docs/ref/templates/api.txt

+ 33 - 15
docs/howto/custom-template-tags.txt

@@ -300,18 +300,21 @@ Template filter code falls into one of two situations:
 
    .. code-block:: python
 
-       from django.utils.html import conditional_escape
-       from django.utils.safestring import mark_safe
-
-       @register.filter(needs_autoescape=True)
-       def initial_letter_filter(text, autoescape=None):
-           first, other = text[0], text[1:]
-           if autoescape:
-               esc = conditional_escape
-           else:
-               esc = lambda x: x
-           result = '<strong>%s</strong>%s' % (esc(first), esc(other))
-           return mark_safe(result)
+      from django import template
+      from django.utils.html import conditional_escape
+      from django.utils.safestring import mark_safe
+
+      register = template.Library()
+
+      @register.filter(needs_autoescape=True)
+      def initial_letter_filter(text, autoescape=None):
+          first, other = text[0], text[1:]
+          if autoescape:
+              esc = conditional_escape
+          else:
+              esc = lambda x: x
+          result = '<strong>%s</strong>%s' % (esc(first), esc(other))
+          return mark_safe(result)
 
    The ``needs_autoescape`` flag and the ``autoescape`` keyword argument mean
    that our function will know whether automatic escaping is in effect when the
@@ -454,8 +457,9 @@ Continuing the above example, we need to define ``CurrentTimeNode``:
 
 .. code-block:: python
 
-    from django import template
     import datetime
+    from django import template
+
     class CurrentTimeNode(template.Node):
         def __init__(self, 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
 
+    from django.template import Context
+
     def render(self, context):
         # ...
         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
 
-    class CycleNode(Node):
+    import itertools
+    from django import template
+
+    class CycleNode(template.Node):
         def __init__(self, cyclevars):
             self.cycle_iter = itertools.cycle(cyclevars)
         def render(self, context):
@@ -576,7 +585,7 @@ Let's refactor our ``CycleNode`` implementation to use the ``render_context``:
 
 .. code-block:: python
 
-    class CycleNode(Node):
+    class CycleNode(template.Node):
         def __init__(self, cyclevars):
             self.cyclevars = cyclevars
         def render(self, context):
@@ -664,6 +673,7 @@ Now your tag should begin to look like this:
 .. code-block:: python
 
     from django import template
+
     def do_format_time(parser, token):
         try:
             # 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
 
+    import datetime
+    from django import template
+
+    register = template.Library()
+
     def current_time(format_string):
         return datetime.datetime.now().strftime(format_string)
 
@@ -965,6 +980,9 @@ outputting it:
 
 .. code-block:: python
 
+    import datetime
+    from django import template
+
     class CurrentTimeNode2(template.Node):
         def __init__(self, format_string):
             self.format_string = format_string

+ 7 - 0
docs/ref/templates/api.txt

@@ -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
 dictionary syntax::
 
+    >>> from django.template import Context
     >>> c = Context({"foo": "bar"})
     >>> c['foo']
     '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
 ``RequestContext`` instance gets a ``ip_address`` variable::
 
+    from django.http import HttpResponse
+    from django.template import RequestContext
+
     def ip_address_processor(request):
         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``
     instance. Your code might look like this::
 
+        from django.shortcuts import render_to_response
+        from django.template import RequestContext
+
         def some_view(request):
             # ...
             return render_to_response('my_template.html',