Hey Daniel,
First of all thanks a lot for your response. You understood it right
that i just want to split up the columns by the blog id so the
defintion of blogs_one and blogs_two was really helpful, thanks. So in
the shell i found out the blogs_x sort the posts. But unfortunately i
can't get it straight to let this work in the template. I worked
through the http://docs.djangoproject.com/en/dev/ref/templates/builtins/
page and used several conditioners (for / if ) which all don't work or
I applied them wrong. For now I have this
************************** views.py *********************
def blogs(request, username=None, template_name="blog/blogs.html"):
blogs_one = Post.objects.filter(blog__id=1)
global blogs_one
blogs_two = Post.objects.filter(blog__id=2)
global blogs_two
if username is not None:
user = get_object_or_404(User, username=username.lower())
blogs_one = Post.objects.filter(author=user, blog__id=1)
blogs_two = Post.objects.filter(author=user, blog__id=2)
return render_to_response(template_name, {
"blogs_one": blogs_one,
"blogs_two": blogs_two,
}, context_instance=RequestContext(request))
********************** Template ***********************
{% if blogs %}
<p>{% trans "These are blog posts from everyone:" %}</p>
<table>
<tr>
<td>
{% autopaginate blogs_one %}
{% for blog_post in blogs %}
{% show_blog_post blog_post %}
{% endfor %}
{% paginate %}
</td>
<td>
{% autopaginate blogs_two %}
{% for blog_post in blogs %}
{% show_blog_post blog_post %}
{% endfor %}
{% paginate %}
</td>
</tr>
</table>
{% else %}
{% trans "No blog posts yet." %}
{% endif %}
2009/12/8 Daniel Roseman <[email protected]>:
> On Dec 8, 2:47 am, GoSantoni <[email protected]> wrote:
>> Guys, i'm struggling with this problem for more than a week now. My
>> goal is to use a queryset filter with a foreign key>> Issues are
>> 1) column generates a list, what is the right way to get the blog id
>> for a post? So whether the post belongs to blog 1 question or blog 2
>> answer? Tried Post.objects.get which fails...
>> 2) howto define this in the template
>>
>> Any help/ directions are appreciated!
>>
>> ********** First I created this model with a foreign key
>> **************************
>> class blog(models.Model):
>> function_CHOICES = (
>> (1, _('question')),
>> (2, _('answer')),
>> )
>> function = models.IntegerField(_('function'),
>> choices=function_CHOICES, default=2)
>>
>> def __unicode__(self):
>> return self.get_function_display()
>>
>> class Post(models.Model):
>> blog = models.ForeignKey(blog)
>>
>> ********* This is the view with the 'column definition'
>> **********************
>> def blogs(request, username=None, template_name="blog/blogs.html"):
>> blogs = Post.objects.filter(status=2).select_related
>> (depth=1).order_by("-publish")
>> column = Post.objects.values(blog__id).select_related('blog')
>>
>> if column == 1:
>> blogs = blogs.filter(author=user).exclude(column==2)
>>
>> pass
>> blogs = blogs.filter(author=user).exclude(column==1)
>>
>> return render_to_response(template_name, {
>> "blogs": blogs,
>> }, context_instance=RequestContext(request))
>>
>> ********* Template. Goal: create 2 columns filtered by whether column
>> =1 or 2 ************
>>
>> <table>
>> <tr>
>> <td>
>> {% if blogs %}
>> <p>{% trans "These are blog posts from everyone:" %}</p>
>> {% autopaginate blogs %}
>>
>> ********** if column == 1 **********
>> {% for blog_post in blogs %}
>> {% show_blog_post blog_post %}
>> {% endfor %}
>>
>> {% paginate %}
>> {% else %}
>> {% trans "No blog posts yet." %}
>> {% endif %}
>> </td>
>> <td>
>> {% if blogs %}
>> <p>{% trans "These are blog posts from everyone:" %}</p>
>>
>> ********** condition for passed data
>> **********
>> {% autopaginate blogs %}
>> {% for blog_post in blogs %}
>> {% show_blog_post blog_post %}
>> {% endfor %}
>> {% paginate %}
>>
>> {% else %}
>> {% trans "No blog posts yet." %}
>> {% endif %}
>> </td>
>> </tr>
>> </table>
>
> It's really unclear what you are trying to do here. You haven't
> allowed for any way to pass in a parameter to filter on, so you will
> always get all blogs to start with (with posts filtered by user).
> 'Column' - ie blog id - is a property of *each post* in the queryset,
> and will be different for different posts.
>
> Is it just that you want to split them up into two columns depending
> on the blog id? In which case, you could do it like this:
>
> blogs_one = Post.objects.filter(author=user, blog__id=1)
> blogs_two = Post.objects.filter(author=user, blog__id=2)
>
> and then iterate through blogs_one and blogs_two in your template.
>
> There will definitely be better ways of doing this, but without
> understanding what you're trying to achieve I can't help further.
> --
> DR.
>
> --
>
> 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.
>
>
>
--
Mark Schuuring
M: [email protected]
--
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.