Tsubasa ,

關於部落格
  自由之翼,
  • 5309

    累積人氣

  • 0

    今日人氣

    0

    訂閱人氣

資料/Django taggit


  在網路服務當中,tag 是一個很常見的功能。透過 tag,我們可以很輕易的將眾多的物件做個歸檔和整理。由於 tag 是那麼常見的功能,因此在 Django 當中當然是有寫好的 package 可供使用。

  這邊我要介紹的是 django-taggit

--


  django-taggit 的使用很簡單,首先先安裝:

  pip install django-taggit

  接下來,在 INSTALLED_APPS 當中加入 taggit:

  INSTALLED_APPS = (
    …
    'taggit'
    …
  )

  最後,在你要加上 tag 的 model 上面加上 TaggableManager:

  from django.db import models
  from taggit.managers import TaggableManager

  class Food(models.Model):
    # ... fields here
    tags = TaggableManager()

--


  接下來可以對 tag 這樣操作:

  增加以及列出所有 tags:

  >>> apple = Food.objects.create(name="apple")
  >>> apple.tags.add("red", "green", "delicious")
  >>> apple.tags.all()
  [<Tag: red>, <Tag: green>, <Tag: delicious>]

  移除 tag:

  >>> apple.tags.remove("green")
  >>> apple.tags.all()
  [<Tag: red>, <Tag: delicious>]

  找某個 tag:

  >>> Food.objects.filter(tags__name__in=["red"])
  [<Food: apple>, <Food: cherry>] 

  根據 tag 搜尋相似的 objects:

  apple.similar_objects()

--

  有了這些,大概基本的 tagging 應用都沒有問題了。

 

相簿設定
標籤設定
相簿狀態