hi,

in many models with an imagefield called photo, I have this code in the 
template:

{% if p.photo %}  
         <img src="{% thumbnail p.photo 400x400 %}" /> 
        
        {% endif %}

this has been working across many sites for years - and is working on a 
particular site running Revision: 12453.

In my current project I am getting keyerror: photo where the photo does not 
exist. This is running on latest trunk. The only difference between the two 
sites is that in site where it is working, 'p' is a query set passed from the 
view, whereas in the site where it is not working, the values are got from a 
pickled file, so the code is like this:

{% if hand.0.player.photo %}hi{% endif %}

here hand.0.player is a Player model which has a field called photo. If the 
photo does not exist I get a KeyError. The full error traceback is given 
below:

Environment:

Request Method: GET
Request URL: http://127.0.0.1:8000/displayhandicap/
Django Version: 1.2.1 SVN-13354
Python Version: 2.6.2
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.admin',
 'djangogolf.web',
 'sorl.thumbnail']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware')


Template error:
In template /home/lawgon/djangogolf/templates/web/handicaplist.html, error at 
line 20
   Caught KeyError while rendering: photo
   10 :     <table>


   11 :         <tr>


   12 :             <th>Member </th>


   13 :             <th>Photo </th>


   14 :             <th>Club </th>


   15 :             <th>Handicap index </th>


   16 :             <th>Handicap for Ooty</th>


   17 :             <th>Handicap for Coimbatore</th>


   18 :             <th>Cut?</th>


   19 :         </tr>


   20 :          {% for hand in handlist.hlist %} 


   21 :             <tr>


   22 :                 <td><a 
href="/scoringrecord/{{hand.0.id}}/">{{hand.0}}</a></td>


   23 :                 


   24 :                 <td>{% if hand.0.player.photo %}hi{% endif %}</td>


   25 :                 <td>{{hand.0.player.homeclub.shortname}} </td>


   26 :                 <td>{{hand.1}} </td>


   27 :                 <td>{{hand.2}} </td>


   28 :                 <td>{{hand.3}} </td>


   29 :                 <td>{{hand.4}} </td>


   30 :             </tr>


Traceback:
File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py" in 
get_response
  100.                     response = callback(request, *callback_args, 
**callback_kwargs)
File "/usr/lib/python2.6/site-packages/djangogolf/web/views.py" in 
displayhandicap
  1911.                                                   
{'handlist':handlist,}))
File "/usr/lib/python2.6/site-packages/django/shortcuts/__init__.py" in 
render_to_response
  20.     return HttpResponse(loader.render_to_string(*args, **kwargs), 
**httpresponse_kwargs)
File "/usr/lib/python2.6/site-packages/django/template/loader.py" in 
render_to_string
  186.     return t.render(context_instance)
File "/usr/lib/python2.6/site-packages/django/template/__init__.py" in render
  173.             return self._render(context)
File "/usr/lib/python2.6/site-packages/django/template/__init__.py" in _render
  167.         return self.nodelist.render(context)
File "/usr/lib/python2.6/site-packages/django/template/__init__.py" in render
  796.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.6/site-packages/django/template/debug.py" in 
render_node
  72.             result = node.render(context)
File "/usr/lib/python2.6/site-packages/django/template/loader_tags.py" in 
render
  125.         return compiled_parent._render(context)
File "/usr/lib/python2.6/site-packages/django/template/__init__.py" in _render
  167.         return self.nodelist.render(context)
File "/usr/lib/python2.6/site-packages/django/template/__init__.py" in render
  796.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.6/site-packages/django/template/debug.py" in 
render_node
  72.             result = node.render(context)
File "/usr/lib/python2.6/site-packages/django/template/loader_tags.py" in 
render
  62.             result = block.nodelist.render(context)
File "/usr/lib/python2.6/site-packages/django/template/__init__.py" in render
  796.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.6/site-packages/django/template/debug.py" in 
render_node
  72.             result = node.render(context)
File "/usr/lib/python2.6/site-packages/django/template/defaulttags.py" in 
render
  251.             return self.nodelist_true.render(context)
File "/usr/lib/python2.6/site-packages/django/template/__init__.py" in render
  796.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.6/site-packages/django/template/debug.py" in 
render_node
  72.             result = node.render(context)
File "/usr/lib/python2.6/site-packages/django/template/defaulttags.py" in 
render
  167.                 nodelist.append(node.render(context))
File "/usr/lib/python2.6/site-packages/django/template/defaulttags.py" in 
render
  246.             var = self.var.eval(context)
File "/usr/lib/python2.6/site-packages/django/template/defaulttags.py" in eval
  751.         return self.value.resolve(context, ignore_failures=True)
File "/usr/lib/python2.6/site-packages/django/template/__init__.py" in resolve
  553.                 obj = self.var.resolve(context)
File "/usr/lib/python2.6/site-packages/django/template/__init__.py" in resolve
  696.             value = self._resolve_lookup(context)
File "/usr/lib/python2.6/site-packages/django/template/__init__.py" in 
_resolve_lookup
  725.                     current = getattr(current, bit)
File "/usr/lib/python2.6/site-packages/django/db/models/fields/files.py" in 
__get__
  175.         file = instance.__dict__[self.field.name]

Exception Type: TemplateSyntaxError at /displayhandicap/
Exception Value: Caught KeyError while rendering: photo
-- 
Regards
Kenneth Gonsalves
Senior Associate
NRC-FOSS at AU-KBC

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to