#Get by tag name
>>> blog_1.tags.names()
<QuerySet ['Python', 'Django']>
#Get with slug
>>> blog_1.tags.slugs()
<QuerySet ['Python', 'Django']>
#Get by object
>>> blog_1.tags.all()
<QuerySet [<Tag: Python>, <Tag: Django>]>
#add to
>>> blog_1.tags.add('programming')
<QuerySet ['Python', 'Django', 'programming']>
#Delete
>>> blog_1.tags.remove('programming')
<QuerySet ['Python', 'Django']>
#Delete all
>>> blog_1.tags.clear()
<QuerySet []>
#Filter by tag
>>> Blog.objects.filter(tags__name__in=["Python", "Django"])
<QuerySet [<Blog:First article>, <Blog:First article>]>
#Filter by tag(No duplication)
>>> Blog.objects.filter(tags__name__in=["Python", "Django"]).distinct()
<QuerySet [<Blog:First article>]>
#Related article(Get objects in descending order of common tags)
>>> blog_1.tags.similar_objects()
[<Blog:Third article>, <Blog:Second article>]
#Tag model acquisition
>>> Tag.objects.all()
<QuerySet [<Tag: Python>, <Tag: Django>, <Tag: programming>]>
#Blog list associated with "Python tag"
>>> tag = Tag.objects.get(name="Python")
>>> Blog.objects.filter(tags=tag)
<QuerySet [<Blog:First article>, <Blog:Second article>, <Blog:Third article>]>
In descending order of blgo tied
>>> Tag.objects.all().annotate(c=Count('taggit_taggeditem_items')).order_by('-c')
<QuerySet [<Tag: programming>, <Tag: Python>, <Tag: Django>]>
Recommended Posts