【发布时间】:2010-03-26 16:43:44
【问题描述】:
好吧,我懒得写这个了……
res = Something.objects.filter(asdf=something)
if res:
single = res[0]
else:
single = None
if single:
# do some stuff
我更愿意做这样的事情:
single = Something.objects.filter(asdf=something)
if single:
#do some stuff
我希望能够在不测试过滤结果的情况下抓取一个单个对象。
换句话说,当我知道将有 1 个或 0 个匹配条目时,我想直接跳到那个条目,否则只得到一个“无”。在尝试将这些查询压缩到一行时,与 .get 一起出现的 DoesNotExist 错误并不总是那么有效。
有什么方法可以做到我所描述的吗?
【问题讨论】:
-
“与 .get 一起出现的 DoesNotExist 错误并不总是那么好用”? “试图将这些查询压缩成一行”?
get方法是标准方法。它出什么问题了?当您的filter示例也不是单行时,“单行”是什么意思?
标签: python django django-models django-queryset