“AssertionError”对象没有属性“message”

Ale*_*lex 3 email django django-forms python-3.x django-oscar

我正在处理 django 中的表单,一旦填写完毕,就会向用户发送一封电子邮件,但我收到以下错误:

错误图像

我已经检查了我的代码,我的问题来自这个函数:

def send_manually_exception_email(request, e):
  exc_info = sys.exc_info()
  reporter = ExceptionReporter(request, is_email=True, *exc_info)
  subject = e.message.replace('\n', '\\n').replace('\r', '\\r')[:989]
  message = "%s\n\n%s" % (
    '\n'.join(traceback.format_exception(*exc_info)),
    reporter.filter.get_request_repr(request)
  )
  mail.mail_admins(subject, message, fail_silently=True, html_message=reporter.get_traceback_html())
Run Code Online (Sandbox Code Playgroud)

我能做些什么?

Inn*_*der 7

虽然比崩溃要好,但 OP 可能不想生成主题行空白的电子邮件。您可以只使用错误的字符串表示形式,例如:

print(e)
print(f'Function x gave error {e}')
Run Code Online (Sandbox Code Playgroud)

在OP的代码中,设置可能就足够了:

subject = str(e)
Run Code Online (Sandbox Code Playgroud)

或者,如果错误没有消息,请使用此作为替代方法:

subject = getattr(e, 'message', str(e)).replace('\n', '\\n').replace('\r', '\\r')[:989]
Run Code Online (Sandbox Code Playgroud)