我正在使用 django + MySQL。有时,我将重复数据插入到我的数据库中,这会导致 django 引发IntegrityErrror
.
问题是,django/python 对几个不同的MySQL 错误使用相同的错误。区分它们的唯一方法是查看错误代码。例如,
try:
# code that raises integrity error
except IntegrityError
if e.args[0] == 1062:
raise CustomCreatedDuplicateEntryError
else:
raise e
我的问题是:这样做安全吗?如果是这样,为什么不在较低级别实施呢?似乎我不能成为唯一一个想要对 IntegrityError 进行更细粒度控制的人。
谢谢!
编辑
引发此错误的代码
class Foo(django.db.models.Model):
guid = models.CharField(max_length=32, db_index=True, unique=True)
Foo(guid=a).save()
# this raises an IntegrityError with code 1062!
Foo(guid=a).save()