Hi, how about this? (I haven't tested it myself)

Models:
-------

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    friends = models.ManyToManyField(User, blank=True,
related_name='friends')

class Thread(models.Model):
    title = models.CharField(maxlength=200)
    users   = models.ManyToManyField(User, related_name='threads')

View:
-----

# get profile
profile = get_object_or_404(UserProfile,
user__id__exact=request.user.id)

# get friends for user
friends = profile.friends.all()

# get threads for friends
threads = []
for friend in friends:
    thread.append([friend, friend.threads.all()])


On Feb 23, 8:34 am, Darthmahon <[EMAIL PROTECTED]> wrote:
> Hey,
>
> I have three models but I can only handle the relationship between two
> at any one time.
>
> Basically I have a page that needs to show a threads the current
> user's friends are currently participating in. I.E. something like
> this:
>
> Thread: ABC
> Participating: Friend 1
>
> Thread: XYZ
> Participating: Friend 1, Friend 2, Friend 3
>
> Here are my models (both of which refer to the default Auth model):
>
> ----------------------------------
> File: /people/models.py
> ----------------------------------
>
> class UserProfile(models.Model):
>
>         user            = models.ForeignKey(User, unique=True)
>         friends = models.ManyToManyField(User, blank=True,
> related_name='friend_set')
>
> ----------------------------------
> File: /thread/models.py
> ----------------------------------
>
> class Thread(models.Model):
>
>         title           = models.CharField(maxlength=200)
>         users   = models.ManyToManyField(User, related_name='users')
>
> ----------------------------------
>
> Now here is my view file:
>
> ----------------------------------
> File: /people/views.py
> ----------------------------------
>
> def index(request):
>
>         # get profile
>         profile = get_object_or_404(UserProfile,
> user__id__exact=request.user.id)
>
>         # get friends for user
>         friends = profile.friends.all()
>
>         # get threads for friends
>         ???????????
>
> ----------------------------------
>
> As you can see, I don't know what to do now I need to get the threads
> for each individual user. I don't need to group them in a special way,
> I just want to print the threads my friends are currently
> participating in an alphabetical list.
>
> I did wonder if I should just edit the UserProfile model like this?
>
> ----------------------------------
> File: /people/models.py
> ----------------------------------
>
> class UserProfile(models.Model):
>
>         user            = models.ForeignKey(User, unique=True)
>         friends = models.ManyToManyField(User, blank=True,
> related_name='friend_set')
>         threads = models.ManyToManyField(Thread, blank=True,
> related_name='thread_set')
>
> ----------------------------------
>
> Any ideas on how to do this? I'm guessing it's probably fairly basic
> but I can't think how I would get around this at the moment (it's been
> a long week!) ;)
>
> Cheers,
> Chris
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to