渲染'0'时捕获KeyError

时间:2011-10-03 18:30:30

标签: django django-templates

我编写了一个非常简单的模板,只需将我的所有会话变量转储到表中:

{% if debug %}
{% block title %}Session Debug Info{% endblock %}
{% block content %}
    <table>
        <thead>
            <tr>
                <th>Key</th>
                <th>Value</th>
            </tr>
        </thead>
        <tbody>
        {% for key, value in request.session %}
            <tr>
                <td>{{key}}</td>
                <td>{{value}}</td>
            </tr>
        {% endfor %}
        </tbody>
    </table>
{% endblock %}
{% endif %}

不幸的是,这会引发以下错误:

Environment:


Request Method: GET
Request URL: http://localhost:8000/debug/session/

Django Version: 1.3
Python Version: 2.7.1
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.admin',
 'django.contrib.admindocs',
 'django.contrib.staticfiles',
 'myproject.web',
 'reversion',
 'south']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Template error:
In template /home/rfkrocktk/Desktop/myproject/src/myproject/web/templates/desktop/debug/session.html, error at line 13
   Caught KeyError while rendering: 0
   3 : {% block title %}Session Debug Info{% endblock %}


   4 : {% block content %}


   5 : <table class="zebra-striped">


   6 :  <thead>


   7 :      <tr>


   8 :          <th>Key</th>


   9 :          <th>Value<th>


   10 :         </tr>


   11 :     </thead>


   12 :     <tbody>


   13 :      {% for key,value in request.session %} 


   14 :         <tr>


   15 :             <td>{{key}}</td>


   16 :             <td>{{value}}</td>


   17 :         </tr>


   18 :     {% endfor %}


   19 :     </tbody>


   20 : </table>


   21 : {% endblock %}


   22 : {% endif %}


   23 : 

Traceback:
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/views/generic/simple.py" in direct_to_template
  28.     return HttpResponse(t.render(c), mimetype=mimetype)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/base.py" in render
  123.             return self._render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/loader_tags.py" in render
  64.             result = block.nodelist.render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/loader_tags.py" in render
  64.             result = block.nodelist.render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/template/defaulttags.py" in render
  190.             values = list(values)
File "/home/rfkrocktk/Desktop/myproject/eggs/Django-1.3-py2.7.egg/django/contrib/sessions/backends/base.py" in __getitem__
  47.         return self._session[key]

Exception Type: TemplateSyntaxError at /debug/session/
Exception Value: Caught KeyError while rendering: 0

1 个答案:

答案 0 :(得分:1)

你可能想要

{% for key, value in request.session.items %}