如果管理网站异常上升,Django会给我发电子邮件吗?

时间:2011-11-03 15:29:59

标签: django django-admin django-email django-errors

Django documentation说:

  

当DEBUG为False时,Django将通过电子邮件向ADMINS中列出的用户发送电子邮件   每当您的代码引发未处理的异常和结果时进行设置   在内部服务器错误(HTTP状态代码500)。

但这包括django管理员网站吗?如果没有,我该如何启用此类报告?

我问这个是因为当我在ModelAdmin子类中有意提升Exception时,我没有收到任何电子邮件。

另一方面,我尝试手动发送,它工作正常。

$ ./manage.py shell
>>> from django.core.mail import EmailMessage
>>> email = EmailMessage('Hello', 'World', to=['email@example.com'])
>>> email.send()

更新 此外,当应用程序的API部分(由活塞驱动)异常上升时,Django会发送崩溃报告。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

此实例中的管理站点没有什么特别之处。当管理员视图引发未处理的异常时,Django会向您发送电子邮件。

故障排除理念1

您是否测试过是否收到非管理员视图的电子邮件?这可能是权限问题吗?与您测试从shell发送电子邮件时相比,Web服务器可能以不同的用户身份运行。

疑难解答2

ModelAdmin中你在哪里提出异常?

以下示例不起作用,因为在定义ModelAdmin类时引发异常,而不是在处理请求时引发异常。

class MyModelAdmin(ModelAdmin):
    raise Exception

相反,在方法中引发异常。您应该收到以下型号的电子邮件,如果您转到它的更改视图网址(例如/admin/app/mymodel/

class MyModelAdmin(ModelAdmin):
    def get_queryset(self, request, queryset):
        raise Exception
相关问题