有没有办法像dict.get()一样做Django QuerySet get()?

时间:2013-09-27 13:06:05

标签: python django django-queryset

当我在字典中查找时,我经常使用dict.get(),这样如果密钥丢失,它就不会引发异常。更好的是,我可以在密钥不存在时指定默认值。

是否有Django查询集的等价物?看起来我能做的最好的就是这个 -

try:
    author = Book.objects.get(title='Hamlet').author
except Book.DoesNotExist:
    author = None

有道理,但我想知道是否有更优雅的方式。

1 个答案:

答案 0 :(得分:0)

books = Book.objects.filter(title='Hamlet')[:1]  # LIMIT 1
book = books[0] if books else None

这应该是达到所需要的最佳方式。