如果 Django 中存在该对象,我如何获取该对象;如果该对象不存在,我如何获取 None?

2023-12-12

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

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

代替DoesNotExist,我怎样才能有go be 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').

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果 Django 中存在该对象,我如何获取该对象;如果该对象不存在,我如何获取 None? 的相关文章

随机推荐