On 2007-12-17 22:41:08 -0700, Kenneth Gonsalves <[EMAIL PROTECTED]> said:
> > > On 18-Dec-07, at 10:33 AM, MrJogo wrote: > >> What's the practical difference between calling >> DB.objects.filter(**kwargs) and DB.objects.get(**kwargs) (where >> **kwargs can be whichever paramenters)? I understand that filter >> returns a QuerySet, but I don't really get how that affects me or my >> code. > > get will return precisely one object. whereas filter will return a > list of objects (list may contain only one object or be empty. So the > difference is that if you do > > a = ...get() > you can write a.id > a= ...filter() > you would have to write a[0].id (if you are expecting only one object > to be returned) One other thing to note is .filter returns a QuerySet object. What this means is that the database won't be hit until it is evaluated. Ex. it is iterated over in a for loop, you do a[0].id, or you provide a step in the slice a[::2]. .get will actually hit the database when called. -- Brian Rosner http://oebfare.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---