相关疑难解决方法(0)

如果对象存在,如何获取对象,如果不存在则为None?

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

go = Content.objects.get(name="baby")
Run Code Online (Sandbox Code Playgroud)

相反的DoesNotExist,我怎么能有go可以None代替?

python django django-queryset

193
推荐指数
12
解决办法
16万
查看次数

Django过滤器与单个对象的获取?

我和一些同事正在讨论这个问题.当你期望只有一个对象时,有没有一种首选的方法来检索Django中的对象?

两个明显的方法是:

try:
    obj = MyModel.objects.get(id=1)
except MyModel.DoesNotExist:
    # We have no object! Do something...
    pass
Run Code Online (Sandbox Code Playgroud)

objs = MyModel.objects.filter(id=1)

if len(objs) == 1:
    obj = objs[0]
else:
    # We have no object! Do something...
    pass
Run Code Online (Sandbox Code Playgroud)

第一种方法似乎在行为上更正确,但在控制流中使用异常可能会引入一些开销.第二个更环形,但不会引发异常.

关于哪一个更好的想法?哪个更有效率?

django django-models django-queryset

137
推荐指数
8
解决办法
8万
查看次数

标签 统计

django ×2

django-queryset ×2

django-models ×1

python ×1