Django-taggit向对象添加新标签?

时间:2014-11-18 09:36:37

标签: python django django-taggit

我的models.py

class X(models.Model):
...
tags = TaggableManager()

如何向对象添加标签。如果我这样做:

 x = X.objects.get(pk = 123)
 x.tags.add( "sample_tag" )

如果先前已创建具有相同名称的标记(即上例中的“sample_tag”),则将标记添加两次。 现在当我检索标签时:

>>> x.tags.all()
>>> [<Tag: sampletag>, <Tag: Sample_tag>]

如何解决这个问题。我想添加一个新标签,如果它之前没有创建,如果创建只是将新对象引用到该标签?

1 个答案:

答案 0 :(得分:2)

django-taggit完全符合您的要求,但在您的情况下,sampletag!= Sample_tag则会创建另一个Tag instnace。

>>> i.tags.all()
[]
>>> i.tags.add("test")
>>> i.tags.all()
[<Tag: test>]
>>> i.tags.add("test")
>>> i.tags.all()
[<Tag: test>]
>>>