过滤django新闻帖子

时间:2012-08-23 14:55:40

标签: python django

我是Django的新手,我有一个新闻帖子,在同一个模板上,我在右侧有一个部分显示所有最新帖子。但是,如果您在其中一个主要新闻帖子中,它也会显示在右侧的“最新新闻”标签中。

我很确定我需要使用.exclude来过滤掉正在显示的那个。但是我不知道django如何知道哪个帖子正在显示。

如果您需要查看我的代码,请询问。我只使用基本模型/视图来输出数据。

显示最新3个帖子的行:

other_news = NewsPost.objects.filter(live=True, categories__in=post.categories.all).distinct().order_by("-posted")[:3]

模板代码:

<div class='related_article_wrapper'>
            {% if other_news %}
                {% for news in other_news %}

                <div class="article_snipppet_wrap">

                    <img class="article_icon" src="/media/images/article_icon.png"  alt="" />
                        <p>{{news.title}}</p>
                        <span><a href="{{news.get_absolute_url}}">{{news.posted|date:"d/m/y"}} &#187;</a></span>

                </div>


            {% endfor %}
            <span><a style="text-decoration: none; href="/news-hub/news/">View all news &#187;</a></span>
            {% endif %}

            </div>

谢谢,

约什

1 个答案:

答案 0 :(得分:3)

只需将.exclude(id=post.id)添加到您的过滤器链中:

other_news = NewsPost.objects.exclude(id=post.id).filter(live=True,    
    categories__in=post.categories.all).distinct().order_by("-posted")[:3]

exclude()以与filter()相同的格式获取参数,它恰恰相反!