On Fri, Jun 19, 2009 at 11:31 AM, IanR <[email protected]> wrote:

>
> Seems to work fine if I build the query using Q's and then only use
> filter one.
>
> On Jun 19, 11:33 am, IanR <[email protected]> wrote:
> > Anyone have any ideas?
> >
> > q2 and q3 should return the same results.
> >
> > >>> from testing.models import Building
> > >>> from testing.models import Unit
> > >>> b1 = Building(name="Bld 1")
> > >>> b1.save()
> > >>> u1 = Unit(building=b1,bedrooms=1,bathrooms=1)
> > >>> u1.save()
> > >>> u2 = Unit(building=b1,bedrooms=2,bathrooms=3)
> > >>> u2.save()
> > >>> q1 = Building.objects.filter(unit__bedrooms=1)
> > >>> q2 = q1.filter(unit__bathrooms=3)
> > >>> q3 = Building.objects.filter(unit__bedrooms=1,unit__bathrooms=3)
> >
> > >>> print q2
> >
> > [<Building: Building object>]>>> print q3
> > []
> > >>> print q2.query.as_sql()
> >
> > ('SELECT "testing_building"."id", "testing_building"."name" FROM
> > "testing_building" INNER JOIN "testing_unit" ON
> > ("testing_building"."id" = "testing_unit"."building_id") INNER JOIN
> > "testing_unit" T3 ON ("testing_building"."id" = T3."building_id")
> > WHERE ("testing_unit"."bedrooms" = %s  AND T3."bathrooms" = %s )', (1,
> > 3))>>> print q3.query.as_sql()
> >
> > ('SELECT "testing_building"."id", "testing_building"."name" FROM
> > "testing_building" INNER JOIN "testing_unit" ON
> > ("testing_building"."id" = "testing_unit"."building_id") WHERE
> > ("testing_unit"."bedrooms" = %s  AND "testing_unit"."bathrooms" =
> > %s )', (1, 3))
> >
> >
> >
> >
> >
>
No, they shouldn't return the same results, this is documented here:
http://docs.djangoproject.com/en/dev/topics/db/queries/#spanning-multi-valued-relationships

Alex

-- 
"I disapprove of what you say, but I will defend to the death your right to
say it." --Voltaire
"The people's good is the highest law."--Cicero

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to