2

私は Django を初めて使用し、ニュース投稿があり、同じテンプレートの右側に最新の投稿をすべて表示するセクションがあります。ただし、メインのニュース投稿の 1 つにアクセスしている場合は、右側の [最新ニュース] タブにも表示されます。

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

ありがとう、

ジョシュ

4

1 に答える 1

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()が、逆のことをするだけです!

于 2012-08-23T15:36:41.773 に答える