【发布时间】:2015-05-13 19:45:50
【问题描述】:
我正在 Django 1.7 中编写自定义身份验证后端,它可能由于以下两个原因之一而失败:无效凭据或某种内部错误,例如数据库问题。根据失败情况,我想向用户提供不同的错误消息。 IE“用户名或密码不正确”的凭据无效,以及“发生错误,请重试或联系支持人员”之类的内容。
由于authenticate() 需要返回一个用户模型,我不能只返回错误,所以我想知道的是:将错误冒泡到名为authenticate() 的视图的最佳方法是什么?
我倾向于从authenticate() 抛出一个带有相应错误消息的异常,然后在视图中捕获该异常。我认为这是处理它的最佳方式,但是我与 Django 专家相差甚远,所以我很想听听社区的想法。
在这里抛出异常是我的最佳选择,还是有更好的方法将身份验证失败从authenticate() 冒泡到视图?如果抛出异常是我最好的选择,是否有一个预定义的 Django 异常符合要求,或者我应该自己制作?
【问题讨论】:
标签: python django authentication django-views