开发者

django-avatar strange error

I'm using django-avatar and my template have:

{% load i18n avatar_tags %}
{% render_avatar avatar 100 %}

and I get this error:

Environment:


Request Method: GET
Request URL: http://test.me/profile/myuser

Django Version: 1.3
Python Version: 2.6.6
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'test',
 'avatar']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.middleware.csrf.CsrfResponseMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Template error:
In template /srv/www/test.me/localhost/test/templates/profile.html, error at line 23
   Caught VariableDoesNotExist while rendering: Failed lookup for key [avatar] in u'[{}, {\'csrf_token\': <django.utils.functional.__proxy__ object at 0xb93445ac>}, {\'perms\': <django.utils.functional.__proxy__ object at 0xb9344cec>, \'messages\': <django.contrib.messages.storage.user_messages.LegacyFallbackStorage object at 0xb936258c>, \'user\': <django.utils.functional.SimpleLazyObject object at 0xb9344bcc>}, {}, {\'LANGUAGES\': ((\'ar\', \'Arabic\'), (\'az\', \'Azerbaijani\'), (\'bg\', \'Bulgarian\'), (\'bn\', \'Bengali\'), (\'bs\', \'Bosnian\'), (\'ca\', \'Catalan\'), (\'cs\', \'Czech\'), (\'cy\', \'Welsh\'), (\'da\', \'Danish\'), (\'de\', \'German\'), (\'el\', \'Greek\'), (\'en\', \'English\'), (\'en-gb\', \'British English\'), (\'es\', \'Spanish\'), (\'es-ar\', \'Argentinian Spanish\'), (\'es-mx\', \'Mexican Spanish\'), (\'es-ni\', \'Nicaraguan Spanish\'), (\'et\', \'Estonian\'), (\'eu\', \'Basque\'), (\'fa\', \'Persian\'), (\'fi\', \'Finnish\'), (\'fr\', \'French\'), (\'fy-nl\', \'Frisian\'), (\'ga\', \'Irish\'), (\'gl\', \'Galician\'), (\'he\', \'Hebrew\'), (\'hi\', \'Hindi\'), (\'hr\', \'Croatian\'), (\'hu\', \'Hungarian\'), (\'id\', \'Indonesian\'), (\'is\', \'Icelandic\'), (\'it\', \'Italian\'), (\'ja\', \'Japanese\'), (\'ka\', \'Georgian\'), (\'km\', \'Khmer\'), (\'kn\', \'Kannada\'), (\'ko\', \'Korean\'), (\'lt\', \'Lithuanian\'), (\'lv\', \'Latvian\'), (\'mk\', \'Macedonian\'), (\'ml\', \'Malayalam\'), (\'mn\', \'Mongolian\'), (\'nl\', \'Dutch\'), (\'no\', \'Norwegian\'), (\'nb\', \'Norwegian Bokmal\'), (\'nn\', \'Norwegian Nynorsk\'), (\'pa\', \'Punjabi\'), (\'pl\', \'Polish\'), (\'pt\', \'Portuguese\'), (\'pt-br\', \'Brazilian Portuguese\'), (\'ro\', \'Romanian\'), (\'ru\', \'Russian\'), (\'sk\', \'Slovak\'), (\'sl\', \'Slovenian\'), (\'sq\', \'Albanian\'), (\'sr\', \'Serbian\'), (\'sr-latn\', \'Serbian Latin\'), (\'sv\', \'Swedish\'), (\'ta\', \'Tamil\'), (\'te\', \'Telugu\'), (\'th\', \'Thai\'), (\'tr\', \'Turkish\'), (\'uk\', \'Ukrainian\'), (\'ur\', \'Urdu\'), (\'vi\', \'Vietnamese\'), (\'zh-cn\', \'Simplified Chinese\'), (\'zh-tw\', \'Traditional Chinese\')), \'LANGUAGE_BIDI\': False, \'LANGUAGE_CODE\': \'en-us\'}, {\'MEDIA_URL\': \'http://test.me/media/\'}, {\'STATIC_URL\': \'/static/\'}, {\'messages\': <django.contrib.messages.storage.user_messages.LegacyFallbackStorage object at 0xb936258c>}, {\'messages\': [], \'user\': <User: myuser>, \'form\': <localhost.test.forms.messagesForm object at 0xb936270c>, \'unread_messages\': []}, {\'block\': <Block Node: content. Contents: [<Text Node: \'\n<center>\n    \'>, <If node>, <Text Node: \'\n    \n<h2>Describe \'>, <Variable Node: user.username>, <Text Node: \' in three messages!</h2>\n\n<d\'>, <django.template.base.SimpleNode object at 0xb937772c>, <Text Node: \'\n</div>\n\n<form id="messages_\'>, <Variable Node: user.id>, <Text Node: \'" id="id_user" /></li> \n \'>, <If node>, <Text Node: \'\n<input type="submit" val\'>, <If node>, <Text Node: \'\n\n\'>]>}]'
   13 :     <ul class="messages" style="display: none">


   14 :         {% for message in messages %}


   15 :         <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>


   16 :         {% endfor %}


   17 :     </ul>


   18 :     {% endif %}


   19 :     


   20 : <h2>Describe {{ user.username }} in three messages!</h2>


   21 : 


   22 : <div id="avatar_box">


   23 :      {% render_avatar avatar 100 %} 


   24 : </div>


   25 : 


   26 : <form id="messages_form" action="" method="post">


   27 :     <ul> 


   28 :     <li><input type="text" name="message_1" id="id_message_1" /></li> 


   29 :     <li><input type="text" name="message_2" id="id_message_2" /></li> 


   30 :     <li><input type="text" name="message_3" id="id_message_3" />


   31 :         <input type="hidden" name="user" value="{{user.id}}" id="id_user" /></li> 


   32 :         </ul>


   33 :         {% if form.errors %}


Traceback:
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/srv/www/test.me/localhost/test/views.py" in profile
  102.              'unread_messages': unread_messages})
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/shortcuts/__init__.py" in render
  44.     return HttpResponse(loader.render_to_string(*args, **kwargs),
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/loader.py" in render_to_string
  188.         return t.render(context_instance)
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/base.py" in render
  123.             return self._render(context)
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/loader_tags.py" in render
  64.             result = block.nodelist.render(context)
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/base.py" in render
  880.                     resolved_vars = [var.resolve(context) for var in self.vars_to_resolve]
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/base.py" in resolve
  653.             value = self._resolve_lookup(context)
File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/template/base.py" in _resolve_lookup
  692.                             raise VariableDoesNotExist("Failed lookup for key [%s] in %r", (bit, current)) # missing attribute

Exception Type: TemplateSyntaxError at /profile/myuser
Exception Value: Caught VariableDoesNotExist while rendering: Failed lookup for key [avatar] in u'[{}, {\'csrf_token\': <django.utils.functional.__proxy__ object at 0xb93445ac>}, {\'perms\': <django.utils.functional.__proxy__ object at 0xb9344cec>, \'messages\': <django.contrib.messages.storage.user_messages.LegacyFallbackStorage object at 0xb936258c>, \'user\': <django.utils.functional.SimpleLazyObject object at 0xb9344bcc>}, {}, {\'LANGUAGES\': ((\'ar\', \'Arabic\'), (\'az\', \'Azerbaijani\'), (\'bg\', \'Bulgarian\'), (\'bn\', \'Bengali\'), (\'bs\', \'Bosnian\'), (\'ca\', \'Catalan\'), (\'cs\', \'Czech\'), (\'cy\', \'Welsh\'), (\'da\', \'Danish\'), (\'de\', \'German\'), (\'el\', \'Greek\'), (\'en\', \'English\'), (\'en-gb\', \'British English\'), (\'es\', \'Spanish\'), (\'es-ar\', \'Argentinian Spanish\'), (\'es-mx\', \'Mexican Spanish\'), (\'es-ni\', \'Nicaraguan Spanish\'), (\'et\', \'Estonian\'), (\'eu\', \'Basque\'), (\'fa\', \'Persian\'), (\'fi\', \'Finnish\'), (\'fr\', \'French\'), (\'fy-nl\', \'Frisian\'), (\'ga\', \'Irish\'), (\'gl\', \'Galician\'), (\'he\', \'Hebrew\'), (\'hi\', \'Hindi\'), (\'hr\', \'Croatian\'), (\'hu\', \'Hungarian\'), (\'id\', \'Indonesian\'), (\'is\', \'Icelandic\'), (\'it\', \'Italian\'), (\'ja\', \'Japanese\'), (\'ka\', \'Georgian\'), (\'km\', \'Khmer\'), (\'kn\', \'Kannada\'), (\'ko\', \'Korean\'), (\'lt\', \'Lithuanian\'), (\'lv\', \'Latvian\'), (\'mk\', \'Macedonian\'), (\'ml\', \'Malayalam\'), (\'mn\', \'Mongolian\'), (\'nl\', \'Dutch\'), (\'no\', \'Norwegian\'), (\'nb\', \'Norwegian Bokmal\'), (\'nn\', \'Norwegian Nynorsk\'), (\'pa\', \'Punjabi\'), (\'pl\', \'Polish\'), (\'pt\', \'Portuguese\'), (\'pt-br\', \'Brazilian Portuguese\'), (\'ro\', \'Romanian\'), (\'ru\', \'Russian\'), (\'sk\', \'Slovak\'), (\'sl\', \'Slovenian\'), (\'sq\', \'Albanian\'), (\'sr\', \'Serbian\'), (\'sr-latn\', \'Serbi开发者_开发百科an Latin\'), (\'sv\', \'Swedish\'), (\'ta\', \'Tamil\'), (\'te\', \'Telugu\'), (\'th\', \'Thai\'), (\'tr\', \'Turkish\'), (\'uk\', \'Ukrainian\'), (\'ur\', \'Urdu\'), (\'vi\', \'Vietnamese\'), (\'zh-cn\', \'Simplified Chinese\'), (\'zh-tw\', \'Traditional Chinese\')), \'LANGUAGE_BIDI\': False, \'LANGUAGE_CODE\': \'en-us\'}, {\'MEDIA_URL\': \'http://test.me/media/\'}, {\'STATIC_URL\': \'/static/\'}, {\'messages\': <django.contrib.messages.storage.user_messages.LegacyFallbackStorage object at 0xb936258c>}, {\'messages\': [], \'user\': <User: myuser>, \'form\': <localhost.test.forms.messagesForm object at 0xb936270c>, \'unread_messages\': []}, {\'block\': <Block Node: content. Contents: [<Text Node: \'\n<center>\n    \'>, <If node>, <Text Node: \'\n    \n<h2>Describe \'>, <Variable Node: user.username>, <Text Node: \' in three messages!</h2>\n\n<d\'>, <django.template.base.SimpleNode object at 0xb937772c>, <Text Node: \'\n</div>\n\n<form id="messages_\'>, <Variable Node: user.id>, <Text Node: \'" id="id_user" /></li> \n \'>, <If node>, <Text Node: \'\n<input type="submit" val\'>, <If node>, <Text Node: \'\n\n\'>]>}]'

It's so strange, because in another template it works without errors.

Can you help me? Thanks.


From the django-avatar docs:

{% render_avatar avatar [size in pixels] %}

Given an actual avatar.models.Avatar object instance, renders an HTML img tag to represent that avatar at the requested size.

So, in your view, you need to get the avatar associated with the user: avatar = Avatar.objects.get(user=request.user)

Then pass that variable into the template.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜