2011-08-04 20 views
3

正在运行django 1.3。如果我在视图中有未处理的异常,例如Django未处理的异常响应状态码

def test(request): 
    raise Exception('error') 

(通过这里的wget)歌厅页:

HTTP request sent, awaiting response... 200 OK 
Length: unspecified [text/html] 
Saving to: `index.html' 

    [ <=>         ] 218   --.-K/s in 0s  

2011-08-04 17:47:43 (14.9 MB/s) - `index.html' saved [218] 

index.html的内容:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>Unhandled Exception</title> 
</head><body> 
<h1>Unhandled Exception</h1> 
<p>An unhandled exception was thrown by the application.</p> 
</body></html> 

而现在的问题:为什么是响应状态代码200?它应该是500

编辑: 上的lighttpd运行带有命令

manage.py runfcgi --settings=$SETTINGS socket=$SOCKET pidfile=$PIDFILE method=prefork minspare=1 maxspare=1 maxchildren=10 maxrequests=100" 

DEBUG = settings.py中FALSE。如果我更改为DEBUG = TRUE,则响应状态码正确为500.

+0

这是从'runserver'出来吗? Nginx/Apache?什么样的设置? –

+0

我已更新问题 – toucan

+0

嗯,我没有在模板文件夹中定义500.html模板文件。这显然使得Django使用标准的异常页面我张贴在我的问题与状态码200.我有点奇怪这是默认行为。我试图寻找Django的来源,但一直未能找到原因。 – toucan

回答

0

使用DEBUG = False它将尝试运行500.html模板。你是否创建了该文件?