Version 1 (modified by marinho, 7 years ago) (diff)

--

Obtendo objeto com validação

Ao obter um objeto através do método .get() da QuerySet, caso o registro não seja encontrado no banco de dados, uma exceção do tipo DoesNotExist será exibida.

A solução para isso é escolher uma das duas abaixo:

Se não existe, retorna erro 404

Ideal para situações onde se deseja informar que a página não foi encontrada caso determinado objeto não exista. Como no exemplo abaixo:

from django.shortcuts import get_object_or_404
from django.contrib.auth.models import User

def usuario(request, username):
    usuario = get_object_or_404(User, username=username)
    
    return HttpResponse('Usuario encontrado!')

Se não existe, trata o erro

from django.contrib.auth.models import User

def usuario(request, username):
    try:
        usuario = User.objects.get(username=username)
    except User.DoesNotExist, e:
        return HttpResponse('Usuario nao encontrado!')
    
    return HttpResponse('Usuario encontrado!')
Back to Top