Hi Ben,

Thank you, I had overlooked that! It works exactly as I wanted it to!

Mike

On 4/6/2007, "Benjamin Slavin" <[EMAIL PROTECTED]> wrote:

>
>Hi Mike,
>
>You'll probably want to check-out select_related. [0]
>
>With that feature, you could use:
>posts = Post.objects.select_related().filter(thread__slug=thread_slug)
>
>If the copy of Django you're using is recent enough (I don't know if
>it's in 0.96), you can use the 'depth' argument...
>posts = Post.objects.select_related(depth=2).filter(thread__slug=thread_slug)
>
>Also, if you want to reduce DB load you could have your ForeignKey to
>User directly, rather than Profile... but I don't know if you
>reference profile elsewhere.
>
>Good luck!
>  -- Ben
>
>[0] http://www.djangoproject.com/documentation/db-api/#select-related
>
>On 4/6/07, Mike H <[EMAIL PROTECTED]> wrote:
>>
>>
>> Hi all,
>>
>> I'm implementing a simple forum which looks like this, but I'm
>> concerned about how many queries are going to get run, and if there is a
>> more efficient way o structuring my view :
>>
>> from django.contrib.auth.models import User
>>
>> class Profile(models.Model):
>>     ... some attributes here, avatar, tagline etc. ...
>>     user = models.ForeignKey(User)
>>
>> class Post(models.Model):
>>     .. some forum info here, not important ...
>>     poster = models.ForeignKey(Profile)
>>
>> So, say I am displaying a list of posts, and as part of the template I
>> want to output some information from their profile, and their username
>> which is stored in their user record. My view code looks something like
>> this :
>>
>> def thread(request, thread_slug):
>>     posts = Post.objects.filter(thread__slug=thread_slug)
>>     return render_to_response('posts.html',{'posts': posts,})
>>
>> and my template looks like this:
>>
>> {% for post in posts %}
>> {{ post.poster.user.username }} said {{ post.content }}
>> {% endfor %}
>>
>> Is accessing the username from the user inside the poster inside the post
>> going to trigger a query for every post I display? Is there a better way
>> to access information that's a few levels deep like that?
>>
>> Thanks for any pointers you can give!
>>
>> Mike
>>
>> >
>>
>
>

--~--~---------~--~----~------------~-------~--~----~
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