Django提出例外

2024-10-03 15:23:12 发布

您现在位置:Python中文网/ 问答频道 /正文

SOCIAL_AUTH_PIPELINE = (
    'social.pipeline.social_auth.associate_by_email',
)

通过在settings.py中使用上述代码,我可以避免。。。在

(1062, "Duplicate entry 'example@example.com' for key 'email'")错误消息。在

但我在网上搜索,发现了一个方便的代码,可以将exception放入所需的html页面:

[代码1]:#后端.py

^{pr2}$

\设置.py

MIDDLEWARE_CLASSES = (
    'frontend.backends.MySocialAuthExceptionMiddleware'
)

我的问题是solved基于上面的代码。但是在以前我用下面的代码处理另一个功能,它与上面的概念完全不同。在

[代码2]:

def function(request):
    #actual code here
    return HttpResponse('msg here')

但是在运行上面的代码时,我得到的错误信息是

tuple index out of range在此MySocialAuthExceptionMiddleware..

实际上,对于上述代码,这不是正确的错误消息。。此消息与代码“[code 1]”有关。在

那么,如何获得“[Code 2]”的实际错误消息。在


Tags: 代码pyauth消息herepipelineexampleemail
1条回答
网友
1楼 · 发布于 2024-10-03 15:23:12

你不需要经历这些头痛。异常在django中并不特殊,它们是Python的一部分。在

如果要引发自定义异常-无论您想在何处执行此操作:

class MyException(Exception):
    pass

def function(request):
    raise MyException('msg here')

您所面临的问题是,在django中,中间件在每个请求上都被调用,即使请求与该中间件不“相关”。在

因此,在编写中间件时,您需要记住,将为每个请求调用它,并且它应该正确地处理这些情况。在

相关问题 更多 >