ジャンゴブログ:多くのクエリに多くの

単に多くの問合せについて書く
モデルは私が書いていない多くの分野に多くのではありません

クラスタグ(models.Model):
    名前= models.CharField(max_lengthを= 20、verbose_name = '标签')
    add_time = models.DateField(デフォルト= datetime.now)

    クラスのMeta:
        verbose_name = '标签' 
        verbose_name_plural = verbose_name 

    デフ__str __(自己):
        戻りself.nameの

クラス・ポスト(models.Model):
    タグ= models.ManyToManyField(タグ、verbose_name = "标签"、ヌル= Trueの場合、空白=真、related_name = 'タグ')
    add_time = models.DateField(デフォルト= datetime.now)

    クラスのMeta:
        verbose_name = "文章" 
        verbose_name_plural = verbose_name 

    デフ__str __(自己):
        戻りself.name

  ビュータグの製造において、私は彼が特定の記事があります見つけると、これらのタグは、クエリが推奨される方法に関連していた使用する必要があります

ArticleViewクラス(ビュー):
    DEF GET(セルフ、リクエスト、post_idの):
        ポスト= Post.objects.get(ID = post_idの)
        #GET、POST、すべてのタグ
        all_tags = post.tag.all()
        #GETすべてのIDタグ
        = all_tags_id [all_tagsでタグのtag.id] 
        これらの記事の記事で#検索タグ
        tag_post = Post.objects.filter(tag__id__in = all_tags_id)[:5] 
        レンダリング(リクエスト、 'article.html'を返します、{ 
            " POST ':POST、
            ' all_tags':all_tags、
            'tag_post':tag_post 
        })

  

最も重要なのはしている記事のタグを取得することで
、その後、IDのすべてのタグのリストを取得するために解析式を使用
して、クエリのポストにこのモデルを行く
tag__id__inここqueryタグのためにidのリストの外部キーで使用されている
中あなたは、リストを通過することができます

どのようにタグのidを照会するために、すべての記事にも同じことを考えなければなりません

ポスト= Post.objects.filter(tag__id = tag.id)

 

おすすめ

転載: www.cnblogs.com/zmdComeOn/p/12173511.html