如何在Django中捕获“唯一约束失败” 404 [英] how do catch A 'UNIQUE constraint failed' 404 in django

查看:275
本文介绍了如何在Django中捕获“唯一约束失败” 404的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在以下代码中特别捕获到UNIQUE约束失败404,我知道我必须在(此处?)部分添加一些内容

How do I specifically catch a UNIQUE constraint failed 404 in the following code, I know I have to add something in the ( here? ) section

try:
    q = AnswerModel(user=user, yes_question=question_model)
    q.save()
except ( here? ):
    return HttpResponseRedirect('/user/already_exists')


推荐答案

from django.db import IntegrityError

except IntegrityError:

这就是您所需要的。

编辑 for @mbrochh:

EDITED for @mbrochh:

from django.db import IntegrityError

except IntegrityError as e: 
    if 'unique constraint' in e.message: # or e.args[0] from Django 1.10
        #do something

是的,您可以更精确,但在某些情况下 UNIQUE失败的可能性很大。

Yes, you can be more precise but in question case UNIQUE failed is highly likely.

这篇关于如何在Django中捕获“唯一约束失败” 404的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆