Norman, unfortunately I think he's asking for the mutual intersection of the users' courses, not the union.
-- Scott On Fri, Jul 18, 2008 at 11:49 AM, Norman Harman <[EMAIL PROTECTED]> wrote: > > Deniz Dogan wrote: > > Hey. > > > > I have a model Course and then I have django.contrib.auth.models.User. > > Users and courses are related through M2M, so a user can register for > > many courses and a course can register multiple users. Now, given a > > potentially very long list of users, I want to retrieve all the > > courses for which all of those users have registered. Currently I have > > implemented it in this manner: > > > > courses = Course.objects.all() > > for user in users: > > courses = courses.filter(users=user) > > courses = courses.distinct() > > > > As you might expect, I get the "maximum 32 tables in a join" error > > when having a very long list of users. How would I go about doing what > > I want here? > > http://www.djangoproject.com/documentation/db-api/#in > > user_ids = [u.id for u in users] > # or user_ids = User.objects.values_list("id", flat=true) > courses = Course.objects.filter(users__id__in=user_ids) > > I've used 'in' with a many hundreds ids. Have no idea how performant it > is compared to other solutions. > > > -- > Norman J. Harman Jr. > Senior Web Specialist, Austin American-Statesman > ___________________________________________________________________________ > You've got fun! Check out Austin360.com for all the entertainment > info you need to live it up in the big city! > > > > -- http://scott.andstuff.org/ | http://truthadorned.org/ --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---