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