> > We'll need a bit more information here, since the devil's always in the > details. At a minimum, what is the output of > > groupmembers.query.as_sql() > > There may be a problem with exclude and nested querysets. I just > realised I haven't explicitly tested those. > > Also, which database are you using? There are lots of SQL variations > between databases (for example, nested queries don't work with Oracle at > the moment for an unusual reason that I'll fix later today).
I am using PostgreSQL 8.3.4 on OS X and on Linux. The output of that command is: ('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 "group_groupsofuser_group_members" ON ("auth_user"."id" = "group_groupsofuser_group_members"."user_id") WHERE ("group_groupsofuser_group_members"."groupsofuser_id" = %s AND NOT ("auth_user"."id" IN (SELECT U0."id", U0."id" FROM "auth_user" U0 INNER JOIN "group_groupsofuser_group_admins" U1 ON (U0."id" = U1."user_id") WHERE U1."groupsofuser_id" = %s )))', (1, 1)) And my model looks like this: class GroupsOfUser(models.Model): """ Groups containing users for allowing them to build communities """ name = models.CharField(_("Name"), max_length=50) description = models.TextField(_("Description"), blank=True, help_text=_("Optional")) slug = models.SlugField() group_members = models.ManyToManyField(User, verbose_name="group members", related_name="groupofumembers") group_admins = models.ManyToManyField(User, verbose_name="group admins", related_name="groupofuadmins") group_owner = models.ForeignKey(User, verbose_name="group owner", related_name="groupofuowner") date_created = models.DateTimeField(_("Creation date"), auto_now_add=True) closed_group = models.BooleanField(_("Closed group"), default=False) request_to_join = models.BooleanField(_("Users have to request to join"), default=False) adult_content = models.BooleanField(_("18 and above only"), default=False) group_picture = models.ImageField(_("Group image"), upload_to="groupsimage/", blank=True, null=True) def __str__(self): return self.name def save(self): self.slug = slugify(self.name, instance=self) super(GroupsOfUser, self).save() class Meta: ordering = ['-date_created'] def get_absolute_url(self): return ('groupdetail', [str(self.slug)]) get_absolute_url = models.permalink(get_absolute_url) In my views: try: requestedgroup = GroupsOfUser.objects.select_related().get (slug=slug) except GroupsOfUser.DoesNotExist: objTemplate = loader.get_template('groups/ group_notfound.html') objContext = RequestContext(request, { 'slug': slug, }) return HttpResponse(objTemplate.render(objContext)) # Bring back the requests for this group we might be an administrator for. groupadminfor = request.user.groupofuadmins.all() groupreq = GroupsOfUserRequest.objects.filter(to_group__in = [grp for grp in groupadminfor]).filter(to_group = requestedgroup).select_related() isgroupadmin = request.user.groupofuadmins.filter(id = requestedgroup.id) ismember = request.user.groupofumembers.filter(id = requestedgroup.id) #Check to make sure that this isn't a closed group if requestedgroup.closed_group == True and ismember.count() < 1: logging.info('User trying to get to closed group') raise Http404 groupadmins = requestedgroup.group_admins.values_list('id', flat=True) groupmembers = requestedgroup.group_members.exclude (id__in=groupadmins) Any help will be appreciated. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---