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 [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-users?hl=en
-~----------~----~----~----~------~----~------~--~---