Django objects.get()

时间:2010-03-22 00:01:00

标签: python django

如果没有任何东西与get相匹配怎么办?然后它会返回错误。

我怎么说:如果有的话,否则,什么也不返回。

3 个答案:

答案 0 :(得分:7)

您可以创建这样的快捷方式(基于get_object_or_404):

from django.shortcuts import _get_queryset

def get_object_or_none(klass, *args, **kwargs):
  queryset = _get_queryset(klass)
  try:
    return queryset.get(*args, **kwargs)
  except queryset.model.DoesNotExist:
    return None

不确定为什么这个快捷方式不存在(或许有更多django可以解释),因为它是我不时使用的一个相当有用的快捷方式。

答案 1 :(得分:3)

使用try/exceptget_object_or_404

答案 2 :(得分:2)

或者你可以试试django烦人的

pip install django-annoying

然后导入get_object_or_None(klass,* args,** kwargs)

from annoying.functions import get_object_or_None
get_object_or_None(User, email='test@test.com')

这是项目repo on github