単に多くの問合せについて書く
モデルは私が書いていない多くの分野に多くのではありません
クラスタグ(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)