Django IntegrityError即使我检查现有记录

时间:2012-06-30 04:18:37

标签: python database django

我将uuid设置为模型中的唯一,并且以下代码应该可以防止任何重复问题,但是如果uuid已经存在,则会生成IntegrityError。

即使有一个带有请求的uuid的视频对象,看起来get也会返回false。 知道为什么会这样吗?

try:
    v = Video.objects.get(uuid = video_id)
except Video.DoesNotExist:
    v = Video(uuid = video_id)
    v.save()

1 个答案:

答案 0 :(得分:0)

IntegrityError是在出现重复键时会引发的预期异常。这就是你了解情况的方法。

您应该关注的是失败的查询:

v = Video.objects.get(uuid = video_id)

如果您知道video_id已存在Video对象的事实,那么您应该检查以确保video_id的类型是正确的。除此之外,其他行为似乎是预期的。