当Django找不到对象时会返回什么?

时间:2011-06-15 22:58:54

标签: python django

我正在对数据库进行查询,如果查询没有返回任何内容我想做某事,但是我收到错误:

user = User.objects.get(name=Jack)
if (user == NULL):
    # something

我得到的用户匹配查询不存在。

3 个答案:

答案 0 :(得分:4)

throws an exception。也许你应该试试catching it

答案 1 :(得分:4)

Django不会“返回”任何内容,而是会引发错误,因此您无法进行if测试。

而是将代码包含在try catch中,就像这样

    try: 
      user = User.objects.get(name="Jack")
    except User.DoesNotExist:
      user = None

编辑:oops,python每次都得到我;)

答案 2 :(得分:3)

你会想要使用这样的东西。 https://docs.djangoproject.com/en/1.3/ref/models/querysets/#get

try:
    user = User.objects.get(name="Jack")
except User.DoesNotExist:
    print "User does not exist"

如果您要访问404页面,则可能需要使用以下https://docs.djangoproject.com/en/1.3/topics/http/shortcuts/#get-object-or-404

from django.shortcuts import get_object_or_404

user = get_object_or_404(User, name="Jack")