http://docs.djangoproject.com/en/1.2/topics/db/queries/#spanning-multi-valued-relationships
On Jul 10, 12:33 am, Skylar Saveland <skylar.savel...@gmail.com> wrote: > If I chain my .filter()s > > Collection.objects.filter(collection_revisions__articles=article).filter(co > llection_revisions__char_fi="p") > > collection_revisions is related_name, FK to Collection. > articles relname, m2m with collection_revision (with a through table). > > I get ~20 results with this query:: > > SELECT "catalog_collection"."id", > ... > > "catalog_collection"."collection_type_id" > FROM "catalog_collection" > INNER JOIN "catalog_collection_revision" ON ("catalog_collection"."id" > = "catalog_collection_revision"."collection_id") > INNER JOIN "catalog_collection_revision_item" ON > ("catalog_collection_revision"."id" = > "catalog_collection_revision_item"."collection_revision_id") > INNER JOIN "catalog_collection_revision" T5 ON > ("catalog_collection"."id" = T5."collection_id") > WHERE ("catalog_collection"."is_archived" = False > AND "catalog_collection_revision_item"."article_id" = 3 > AND T5."revision_tag" = p) > > When I put the two queries within the same call to filter, I thought > it would be the same. But, there is not the 3rd INNER JOIN and it > only returns 1 object:: > > Collection.objects.filter(collection_revisions__articles=article, > filter(collection_revisions__revision_tag="p") > > SELECT "catalog_collection"."id", > ... > > "catalog_collection"."collection_type_id" > FROM "catalog_collection" > INNER JOIN "catalog_collection_revision" ON ("catalog_collection"."id" > = "catalog_collection_revision"."collection_id") > INNER JOIN "catalog_collection_revision_item" ON > ("catalog_collection_revision"."id" = > "catalog_collection_revision_item"."collection_revision_id") > WHERE ("catalog_collection"."is_archived" = False > AND "catalog_collection_revision_item"."article_id" = 3 > AND "catalog_collection_revision"."revision_tag" = p) > > Is this the expected behavior? Can someone explain what's going on? -- 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.