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

标签 python django django-queryset

当我要求模型管理器获取对象时,它会在没有匹配对象时引发 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')

关于python - 如果对象存在,我如何获取它,或者如果它在 Django 中不存在,我如何获取它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3090302/

相关文章:

python - 从 Django 获取多个随机对象时,查询集如何工作?

python - Numpy:在数组上施加行依赖最大值

python - 添加具有颜色属性的边/节点

python - 是什么构成了 python 元组?

python - 我应该使用 session 来保存用户数据吗? Django

django - 给定一个项目,在 Django 查询集中查找上一个和下一个项目

python - 在 django ORM 中获取分组的月份

python - 什么是 python 中的默认模块(当我们运行 Python 时导入它们,例如 "print")

django - 创建 django webapp + REST API 端点

python - Django REST Framework - CurrentUserDefault 使用