Ok, just tried this:

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

This appears to print something back, but it looks like it is just
printing my friends.

Not sure how to loop through this result properly in the template. At
the moment I am doing this - but the template is probably completely
wrong in terms of printing my friends, within each thread:

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

return render_to_response('people/threads.html', { "thread_list" :
threads }, context_instance=RequestContext(request))
-----

-----
Template:
-----
{% for thread in thread_list %}

<h2>{{ thread.title }}</h2>
<p>{{ thread.friends|join:", " }}</p>

{% endfor %}
-----

On Feb 22, 10:44 pm, Darthmahon <[EMAIL PROTECTED]> wrote:
> Hi Julien,
>
> Just gave that a go, getting an error:
>
> 'User' object has no attribute 'threads'
>
> I'm guessing that because I am referring to the User model, which has
> no direct relation to the Thread module, this won't work?
>
> Julien wrote:
> > 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

On Feb 22, 10:44 pm, Darthmahon <[EMAIL PROTECTED]> wrote:
> Hi Julien,
>
> Just gave that a go, getting an error:
>
> 'User' object has no attribute 'threads'
>
> I'm guessing that because I am referring to the User model, which has
> no direct relation to the Thread module, this won't work?
>
> Julien wrote:
> > 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