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会发送崩溃报告。
非常感谢任何帮助。
答案 0 :(得分:0)
此实例中的管理站点没有什么特别之处。当管理员视图引发未处理的异常时,Django会向您发送电子邮件。
您是否测试过是否收到非管理员视图的电子邮件?这可能是权限问题吗?与您测试从shell发送电子邮件时相比,Web服务器可能以不同的用户身份运行。
ModelAdmin中你在哪里提出异常?
以下示例不起作用,因为在定义ModelAdmin类时引发异常,而不是在处理请求时引发异常。
class MyModelAdmin(ModelAdmin):
raise Exception
相反,在方法中引发异常。您应该收到以下型号的电子邮件,如果您转到它的更改视图网址(例如/admin/app/mymodel/
)
class MyModelAdmin(ModelAdmin):
def get_queryset(self, request, queryset):
raise Exception