2010-01-01 104 views
1

如果产品的数量是Unicode字符,我会在/ add /处得到 UnicodeEncodeError。当我设置DEBUG = False时,satchmo 无法处理500错误,它不能返回HttpResponse对象,但处理程序404正常。我在apache错误日志中找到以下内容。satchmo无法处理500错误

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] mod_wsgi 
(pid=10523): Exception occurred processing WSGI script '/etc/httpd/ 
conf.d/myshop.wsgi'. 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] Traceback 
(most recent call last): 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
etc/httpd/conf.d/myshop.wsgi", line 34, in application[Thu Dec 31 
23:05:31 2009] [error] [client 192.168.123.124]  return _application 
(environ, start_response) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/core/handlers/ 
wsgi.py", line 241, in __call__ 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] 
response = self.get_response(request) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/core/handlers/ 
base.py", line 134, in get_response 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  return 
self.handle_uncaught_exception(request, resolver, exc_info) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/core/handlers/ 
base.py", line 166, in handle_uncaught_exception 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  return 
callback(request, **param_dict) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/views/ 
defaults.py", line 24, in server_error 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  return 
http.HttpResponseServerError(t.render(Context({}))) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
__init__.py", line 178, in render 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  return 
self.nodelist.render(context) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
__init__.py", line 779, in render 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] 
bits.append(self.render_node(node, context)) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
__init__.py", line 792, in render_node 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  return 
node.render(context) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
loader_tags.py", line 97, in render 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  return 
compiled_parent.render(context) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
__init__.py", line 178, in render 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  return 
self.nodelist.render(context) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
__init__.py", line 779, in render 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] 
bits.append(self.render_node(node, context)) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
__init__.py", line 792, in render_node 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  return 
node.render(context) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
loader_tags.py", line 24, in render 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  result 
= self.nodelist.render(context) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
__init__.py", line 779, in render 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] 
bits.append(self.render_node(node, context)) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
__init__.py", line 792, in render_node 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  return 
node.render(context) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
loader_tags.py", line 24, in render 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  result 
= self.nodelist.render(context) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
__init__.py", line 779, in render 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] 
bits.append(self.render_node(node, context)) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
__init__.py", line 792, in render_node 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  return 
node.render(context) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
__init__.py", line 936, in render 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  dict = 
func(*args) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/Satchmo-1.0_pre-py2.5.egg/ 
satchmo_store/shop/templatetags/satchmo_util.py", line 179, in 
satchmo_language_selection_form 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] 
request = context['request'] 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] File "/ 
opt/python-2.5.4/lib/python2.5/site-packages/django/template/ 
context.py", line 44, in __getitem__ 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124]  raise 
KeyError(key) 

[Thu Dec 31 23:05:31 2009] [error] [client 192.168.123.124] KeyError: 
'request' 

这里是500.html:

{% extends "base.html" %} 
{% load i18n %} 

{% block navbar %} 
    <li class="first"><a href="{{ shop_base }}/">{% trans "Home" %}</a></li> 
{% endblock %} 

{% block content %} 

    <h3>{% trans "Error" %}</h3> 
    <h4>{% trans "There was an error with the store. The admin has been notified." %}</h4> 

{% endblock %} 

这里是base.html文件:

{% load i18n satchmo_category satchmo_google satchmo_util satchmo_currency satchmo_discounts app_plugins normalize_decimal %} 
{% block doctype %}<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
{% endblock %} 
<head> 
    {% block extra-head %}{% endblock %} 
    {% block stylesheet %}<link rel="stylesheet" href="{{ media_url }}css/style.css" />{% endblock %} 
    <title>{% block title %}{{ shop_name }}{% if pagetitle %}: {{ pagetitle }}{% endif %}{% endblock %}</title> 
    {% plugin_point "page_head" %} 
</head> 
{% block body %} 
contents 
{% endblock %} 
</html> 

为什么Django的无法处理的500错误页面?

+0

将是一个有点难以分辨,除非你发布500处理器的代码... – 2010-01-01 12:32:24

+0

@Daniel罗斯曼谢谢你的提醒 – ManofPhysics 2010-01-01 17:43:40

+0

在开发服务器下运行时,你会得到相同的结果吗? – 2010-01-01 17:46:33

回答

1

通过Django's documentation

The default 500 view passes no variables to this template and is rendered with an empty Context to lessen the chance of additional errors

,我认为你应该保持同样的方法为您500.html,通过扩展base.html文件,而不是甚至引用国际化,而是保持它尽可能简单

考虑上下文,当你得到一个服务器错误:出了问题,你不知道什么。你甚至可能处于不满足所有通常先决条件的情况下,因此你应该尽可能简单地保持页面。
我个人甚至避免图像,仅在某些ASCII艺术依托:-)

+0

@Roberto Liffredo,谢谢 – ManofPhysics 2010-01-02 12:39:02