2010-07-06 66 views
1

如果我有一問一答的系統,我想添加標籤的功能,爲每一個問題,我應該有一些標籤,用逗號(就像#2)分離:如何製作標籤?

  1. 我想有一個單獨的類模型,對於一個問題的外鍵
  2. 在表單中,我希望用戶能夠添加多個標記,用逗號分隔,並且在提交表單時,我希望標記被存儲在一個表中:每個標記一個註冊

我應該在表格中使用什麼,以便用逗號分隔標記要保存在數據庫中,每個標籤註冊一次? (爲了便於搜索)

感謝

回答

7

django-taggit

更新:閱讀文檔,看看如何標記輸入字符串的結果標籤,http://github.com/alex/django-taggit/blob/master/docs/forms.txt

+2

是的,不要嘗試自己做這個。這是一個解決的問題。 – 2010-07-06 11:22:32

+0

嗯......我很害怕使用它,我是一個初學者,害怕不能在短時間內瞭解代碼 – dana 2010-07-06 11:35:40

+1

似乎是非維護django標記的好替代品。 – 2010-07-06 12:01:28

0

是的.. contenttypes框架是創建標籤的最佳方式。

class TagName(models.Model): 
    name = models.CharField(max_length=255) 

    class Meta: 
     pass 


class Tag(Model): 
    tag = models.ForeignKey(TagName, related_name="tag_objects") 
    content_type = models.ForeignKey(ContentType, blank=True, null=True) 
    object_id = models.TextField(ugettext('object id'), blank=True, null=True) 
    content_object = GenericForeignKey('content_type', 'object_id') 

    class Meta: 
     pass