0

Django文档说:

当 DEBUG 为 False 时,只要您的代码引发未处理的异常并导致内部服务器错误(HTTP 状态代码 500),Django 就会向 ADMINS 设置中列出的用户发送电子邮件。

但这是否包括 django 管理站点?如果没有,我该如何启用此类报告?

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

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

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

更新: 当应用程序的 API 部分出现异常(由活塞驱动)时,Django 也会发送崩溃报告。

任何帮助深表感谢。

4

1 回答 1

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
于 2011-11-03T15:50:14.047 回答