2011-03-31 11 views
5

Tengo una versión personalizada de 500 para usar con centinela. En mi archivo tengo urls.py:Sentry custom 500 handler

def handler500(request): 
    """ 
    500 error handler which includes ``request`` in the context. 

    Templates: `500.html` 
    Context: None 
    """ 
    from django.template import Context, loader 
    from django.http import HttpResponseServerError 

    t = loader.get_template('500.html') # You need to create a 500.html template. 
    return HttpResponseServerError(t.render(RequestContext(request))) 

Y en mi plantilla 500.html:

{% extends "intranet/index.html" %} 

{% block main_content %} 
<h1>Internal Error!</h1> 
<p>You've encountered an error, please try again in some time or file an 
error report if the problem persists. 
{% if request.sentry.id %} 
You may reference this error as <strong>{{ request.sentry.id }}</strong>. 
{% endif %} 
</p> 
{% endblock %} 

Esto funciona en mi máquina local, pero no en mi servicio de hosting. Los registros de Apache contienen este error:

[Thu Mar 31 22:09:15 2011] [error] [client 127.0.0.1]  args = md5_constructor(u':'.join([urlquote(resolve_variable(var, context)) for var in self.vary_on])), referer: https://myurl.com/view/b4bddfa9da6d40fb8bad3e68393a8efb 
[Thu Mar 31 22:09:15 2011] [error] [client 127.0.0.1] File "/mypath/lib/python2.6/site-packages/django/template/__init__.py", line 630, in resolve_variable, referer: https://myurl.com/view/b4bddfa9da6d40fb8bad3e68393a8efb 
[Thu Mar 31 22:09:15 2011] [error] [client 127.0.0.1]  return Variable(path).resolve(context), referer: https://myurl.com/view/b4bddfa9da6d40fb8bad3e68393a8efb 
[Thu Mar 31 22:09:15 2011] [error] [client 127.0.0.1] File "/mypath/lib/python2.6/site-packages/django/template/__init__.py", line 696, in resolve, referer: https://myurl.com/view/b4bddfa9da6d40fb8bad3e68393a8efb 
[Thu Mar 31 22:09:15 2011] [error] [client 127.0.0.1]  value = self._resolve_lookup(context), referer: https://myurl.com/view/b4bddfa9da6d40fb8bad3e68393a8efb 
[Thu Mar 31 22:09:15 2011] [error] [client 127.0.0.1] File "/mypath/lib/python2.6/site-packages/django/template/__init__.py", line 749, in _resolve_lookup, referer: https://myurl.com/view/b4bddfa9da6d40fb8bad3e68393a8efb 
[Thu Mar 31 22:09:15 2011] [error] [client 127.0.0.1]  raise VariableDoesNotExist("Failed lookup for key [%s] in %r", (bit, current)) # missing attribute, referer: https://myurl.com/view/b4bddfa9da6d40fb8bad3e68393a8efb 
[Thu Mar 31 22:09:15 2011] [error] [client 127.0.0.1] TemplateSyntaxError: Caught VariableDoesNotExist while rendering: Failed lookup for key [request] in u'[{}, {\\'block\\': <Block Node: body. Contents: [<Text Node: \\'\\n<body>\\n<div id="page">\\n\\'>, <If node>, <Text Node: \\'\\n<div id="container" clas\\'>, <Block Node: container. Contents: [<Text Node: \\'\\n\\'>, <If node>, <Text Node: \\'\\n<div id="main_content" c\\'>, <If node>, <Text Node: \\'">\\n<div id="breadcrumbs">\\'>, <Block Node: main_content. Contents: [<Text Node: \\'\\n\\n<div id="actions">\\n\\'>, <Block Node: actions. Contents: [<Text Node: \\'\\n\\'>]>, <Text Node: \\'\\n</div>\\n<div id="content"\\'>, <Block Node: content. Contents: [<Text Node: \\'\\n\\'>]>, <Text Node: \\'\\n</div>\\n</div>\\n\\'>]>, <Text Node: \\'\\n<div style="clear: both;\\'>]>, <Text Node: \\'\\n</div>\\n\\'>, <If node>, <Text Node: \\'\\n<div style="clear: both;\\'>]>}, {\\'block\\': <Block Node: notifications. Contents: [<Text Node: \\'\\n \\'>, <django.templatetags.cache.CacheNode object at 0xb3faa8c>, <Text Node: \\'\\n \\'>]>}]', referer: https://myurl.com/view/b4bddfa9da6d40fb8bad3e68393a8efb 

Esto me está volviendo loco. Cualquier consejo sería muy apreciado

Respuesta

2

¿Son sus configuraciones absolutamente 100% iguales entre dev y producción?

Asegúrese de que tiene en su django.core.context_processors.requestTEMPLATE_CONTEXT_PROCESSORS

Aunque no veo nada en su plantilla que debe quejarse en voz alta este, debe tener algo en otra plantilla que causa este problema.

Espero que sea el caso!

http://groups.google.com/group/django-feincms/browse_thread/thread/8beccc194a6d6cf7/d843a074f300c9e9?#d843a074f300c9e9

http://daniel.hepper.net/blog/2010/11/how-to-fix-variabledoesnotexist-exception-in-django/

+0

Hay algunas configuraciones diferentes, pero eso es solo cosas como depuración, etc., y están en un archivo local_settings diferente que importo. – zsquare

+1

Además, tengo "django.core.context_processors.request" en mi configuración. ¿Algunas ideas? Estoy en el borde, estaré arrancando mi cabello en cualquier momento: D – zsquare

+0

¡Dang! Esto solo pasa con el error 500? :( –

0

tuve aparece este mismo error para dos personas (además de la parte que falta en los TEPMLATE_CONTEXT_PROCESSORS) razones adicionales:

  • modelos estaban fuera de fecha - syncdb ejecutar y migrar y esto desapareció
  • urlconf no se definió en urls.py - todos los urlconfs fueron claramente comentados.