Model.objects.get()或None

Dav*_*542 16 django django-models

有没有办法在一个电话中完成以下操作:

Model.objects.get(id=1) else None
Run Code Online (Sandbox Code Playgroud)

我找到办法的唯一方法是:

try:
    object = Model...
except:
    object = None
Run Code Online (Sandbox Code Playgroud)

有没有办法在django的单个调用中执行此操作?

更新:似乎有不有办法比在做到这一点其他try/except块,但这里是一个更好的答案:在Django的,我怎么objects.get,但是当什么也没找到返回None?

Gau*_*rav 30

这个怎么样:

obj = Model.objects.filter(id=1).first()
Run Code Online (Sandbox Code Playgroud)

现在,如果没有id = 1的对象,则obj将为None

参考:https://docs.djangoproject.com/en/1.8/ref/models/querysets/#django.db.models.query.QuerySet.first

  • 请注意,这不是同一回事,因为如果发现多个匹配项,则会发生“ get”错误,而这只会返回第一个。 (3认同)