如何获得该对象(如果存在)或“无”(如果不存在)?

当我要求模型管理器获取对象时,如果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')

以上是 如何获得该对象(如果存在)或“无”(如果不存在)? 的全部内容, 来源链接: utcz.com/qa/400688.html

回到顶部