2010-07-06 64 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