If you don't want to use exception (which I do when doing something
similar). You can use filter and then check the length of the array
returned.

def my_view( request , pk ):
    obj = Class.objects.filter( pk = pk)
    if len(obj) != 1:
        return bad_key_view
    obj = obj[0]
    # Do something with obj and return a suitable response.

/J

On Fri, Apr 9, 2010 at 11:54 PM, Joakim Hove <joakim.h...@gmail.com> wrote:

> Hello,
>
> I have something I would presume was a very common pattern. I have a
> view which gets a primary-key (from the user) as second argument:
>
>
> def my_view( request , pk ):
>     obj = Class.objects.get( pk = pk)
>     # Do something with obj and return a suitable response.
>
>
> Now, of course I would like to check whether the object identified by
> 'pk' is in the database, and return a suitable error message if that
> fails; I was halfway expecting to find a "has_key() / exists() / ..."
> method, but it seems the only way to handle this gracefully is by
> catching the DoesNotExist exception?
>
> I have never really got very friendly with exceptions, I tend to
> consider them as something exceptional which "should not" happen,
> whereas the fact that the database does not contain a particular key
> is in my opinion something quite ordinary and not by any means
> "exceptional".
>
> Or maybe I am misunderstanding roally here?
>
> Joakim
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-us...@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to