You're not asking it to filter on the current site. Shouldn't you use : 'User.objects.filter (photos__name="photo_name").filter(photos__site__id=1)'
----- Original Message ----- From: [email protected] <[email protected]> To: Django developers <[email protected]> Cc: [email protected] <[email protected]> Sent: Thu Feb 05 17:21:11 2009 Subject: Filtering with respect to a related objects field Say I have a model like this: class Photo(models.Model): name = models.CharField(max_length=25) user = models.ForeignKey(User,related_name='photos') image = models.ImageField() site = models.ForeignKey(Site,related_name='site_photos') objects = CurrentSiteManager() I've noticed that if I try to filter users on whether or not they have a photo with a certain name it doesn't restrict photos to those on the current site. The query 'User.objects.filter (photos__name="photo_name")' looks like this: ('SELECT "auth_user"."id", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user" INNER JOIN "photos_photo" ON ("auth_user"."id" = "photos_photo"."user_id") WHERE "photos_photo"."name" = %s ', ('photo_name',)) I think it should look like this: 'SELECT "auth_user"."id", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user" INNER JOIN "photos_photo" ON ("auth_user"."id" = "photos_photo"."user_id") WHERE ("photos_photo"."name" = %s AND "photos_photo"."site_id" = %s )', ('photo_name',1)) Is this done on purpose? There may be a reason for it that I don't understand. Is there a way that default managers can be taken into consideration when filtering through related fields? I don't know exactly how this is supposed to work, is this the desired behavior? Thanks --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django developers" 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-developers?hl=en -~----------~----~----~----~------~----~------~--~---
