如果没有任何东西与get相匹配怎么办?然后它会返回错误。
我怎么说:如果有的话,否则,什么也不返回。
答案 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/except
或get_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