3

私のモデル.py

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

オブジェクトにタグを追加する方法。私が行った場合:

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

同じ名前のタグ (つまり、上記の場合は「sample_tag」) が以前に作成されている場合、タグを 2 回追加します。タグを取得すると:

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

この問題を解決する方法。以前に作成されていない場合にのみ新しいタグを追加したいのですが、作成された場合は、新しいオブジェクトをそのタグに参照するだけですか?

4

1 に答える 1

4

django-taggit はまさにあなたが望むことをしますが、あなたの場合は sampletag != Sample_tag なので、別の Tag インスタンスが作成されます。

>>> i.tags.all()
[]
>>> i.tags.add("test")
>>> i.tags.all()
[<Tag: test>]
>>> i.tags.add("test")
>>> i.tags.all()
[<Tag: test>]
>>> 
于 2014-11-18T11:38:26.617 に答える