django使用app機制來實現組件的重用,充分的利用已有的app可以極大的簡化開發工作。目前django下的app雖然還不夠豐富,卻也還是有部分不錯的。django-tagging就是一個不錯的app。
現在tag的應用非常廣泛,tag基本上成了各網站的必備項目之一,django-tagging就是一個提供tag功能的app。django-tagging提供的功能非常豐富,使用起來卻十分簡單。下面我就介紹一些常用的用法,讓大家對該app有個基本的了解,更詳細的介紹還是老老實實的去看django-tagging的使用說明吧:)。
tagging.fields.TagField
我們先定義一個數據庫模型Widget,下面的范例都用Widget來進行說明
1
2
3
|
class Widget(models.Model): name = models.CharField(max_length = 50 ) tags = TagField() |
就如上面的代碼,只要在數據庫模型中增加tags字段就可以為該對象提供tag支持了。tags被映射為CharField,在為對象添加tag時為,英文逗號分割的字符串如:
1
|
Widget(name = 'hello' , tags = 'test,hi,hello' ) |
這樣就為新建立的對象添加了test hi hello三個tag了。
獲取某個tag下的所有對象的代碼如下:
1
2
3
|
#取出所有屬于TAG hi的對象 tag = get_object_or_404(Tag, name = 'hi' ) widgets = TaggedItem.objects.get_by_model(Widget, tag) |
如要取出Widget用到的所有tag的代碼為:
1
|
tags = Widget.tags. all () |