python - 如果对象存在,我如何获取它,或者如果它在 Django 中不存在,我如何获取它?

当我要求模型管理器获取对象时,它会在没有匹配对象时引发 DoesNotExist

go = Content.objects.get(name="baby")

DoesNotExist,我怎样才能让 go 改为 None

最佳答案

没有“内置”方法可以做到这一点。 Django 每次都会引发 DoesNotExist 异常。 在 python 中处理此问题的惯用方法是将其包装在 try catch 中:

try:
    go = SomeModel.objects.get(foo='bar')
except SomeModel.DoesNotExist:
    go = None

我所做的是继承models.Manager,像上面的代码一样创建一个safe_get,并将该管理器用于我的模型。这样您就可以编写:SomeModel.objects.safe_get(foo='bar')

https://stackoverflow.com/questions/3090302/

相关文章:

mysql - 错误 1045 (28000) : Access denied for user '

python - 如何消除数独方 block 中的凸性缺陷?

linux - 如何在 Linux 中遍历目录?

linux - 如何在 bash 中在一行中运行多个后台命令?

python - scikit-learn 中跨多个列的标签编码

python - 如何将 numpy 数组转换为(并显示)图像?

linux - SVN check out 文件夹的内容,而不是文件夹本身

python - 如何获得 Python 类的 parent ?

python - 如何检查我的 python 对象是否为数字?

linux - 查看 PS 命令的完整输出