"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-Magee <freakboy3...@gmail.com> wrote: > On Tue, Jul 14, 2009 at 10:31 AM, Streamweaver<streamwea...@gmail.com> 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 -~----------~----~----~----~------~----~------~--~---