Re: Queries for Related Objects wonky
"They" are apparently people who read the documentation and understand better then "me". Sigh, and I thought I uncovered somethign, ah well. Simple error and thanks for clarifying. On Jul 13, 11:13 pm, Russell Keith-Mageewrote: > On Tue, Jul 14, 2009 at 10:31 AM, Streamweaver wrote: > >> For example I have a model called Project with a ForeignKey to a > >> Django User. > > >> class Project(models.Model): > >> ... > >> owner = models.ForeignKey(User) > >> ... > > >> by the documentation I would expect the following to give me a list of > >> all Users who are owners of projects but it does not. > > >> User.objects.filter(project__owner__isnull=False) > > >> Instead it's returning a queryset of all users. > > >> Anyone have any insight into this? > ... > > Filed a bug report about this. We'll see if they accept it. > > I'm not sure who "they" are supposed to be, but "they" won't accept > this ticket, because this isn't a bug. > > The query: > > User.objects.filter(project__owner__isnull=False) > > Querying on project__owner is essentially asking Django to traverse to > the project table so that it can query an attribute that is already > present on the user table - the ID. Django optimizes this query, and > doesn't do the join, since it already has the data locally. So, your > reduces to 'User.objects.filter(id__isnull=False)' - which is the same > as "User.objects.all()" > > What you need to do is query for the non-existence of a project > associated with a user: > > User.objects.filter(project__isnull=False) > > Yours, > Russ Magee %-) --~--~-~--~~~---~--~~ 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 django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~--~~~~--~~--~--~---
Re: Queries for Related Objects wonky
On Tue, Jul 14, 2009 at 10:31 AM, Streamweaverwrote: >> For example I have a model called Project with a ForeignKey to a >> Django User. >> >> class Project(models.Model): >>... >> owner = models.ForeignKey(User) >> ... >> >> by the documentation I would expect the following to give me a list of >> all Users who are owners of projects but it does not. >> >> User.objects.filter(project__owner__isnull=False) >> >> Instead it's returning a queryset of all users. >> >> Anyone have any insight into this? ... > Filed a bug report about this. We'll see if they accept it. I'm not sure who "they" are supposed to be, but "they" won't accept this ticket, because this isn't a bug. The query: User.objects.filter(project__owner__isnull=False) Querying on project__owner is essentially asking Django to traverse to the project table so that it can query an attribute that is already present on the user table - the ID. Django optimizes this query, and doesn't do the join, since it already has the data locally. So, your reduces to 'User.objects.filter(id__isnull=False)' - which is the same as "User.objects.all()" What you need to do is query for the non-existence of a project associated with a user: User.objects.filter(project__isnull=False) Yours, Russ Magee %-) --~--~-~--~~~---~--~~ 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 django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~--~~~~--~~--~--~---
Re: Queries for Related Objects wonky
Filed a bug report about this. We'll see if they accept it. On Jul 10, 5:29 pm, Streamweaverwrote: > I'm using Django 1.0.2 and having some problems with Related Object > queries. > > For example I have a model called Project with a ForeignKey to a > Django User. > > class Project(models.Model): > ... > owner = models.ForeignKey(User) > ... > > by the documentation I would expect the following to give me a list of > all Users who are owners of projects but it does not. > > User.objects.filter(project__owner__isnull=False) > > Instead it's returning a queryset of all users. > > Anyone have any insight into this? --~--~-~--~~~---~--~~ 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 django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~--~~~~--~~--~--~---
Queries for Related Objects wonky
I'm using Django 1.0.2 and having some problems with Related Object queries. For example I have a model called Project with a ForeignKey to a Django User. class Project(models.Model): ... owner = models.ForeignKey(User) ... by the documentation I would expect the following to give me a list of all Users who are owners of projects but it does not. User.objects.filter(project__owner__isnull=False) Instead it's returning a queryset of all users. Anyone have any insight into this? --~--~-~--~~~---~--~~ 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 django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~--~~~~--~~--~--~---