4

私はdjango-taggitを使用しています。すべてのタグを小文字にして、タグ番号の範囲も設定したいと思います (たとえば、stackoverflow のように 1 から 5 の間)。django-taggit で簡単に行う方法はありますか? ありがとう!

4

3 に答える 3

3

django-taggit を使えばとても簡単です。TagBase をサブクラス化し、save メソッドで小文字の制約を適用します。残りはボイラーポイントであるため、TuggableManager はサブクラスを使用できます。

class LowerCaseTag(TagBase):
    def save(self, *args, **kwargs):
        self.name = self.name.lower()
        super(LowerCaseTag, self).save(*args, **kwargs)

class LowerCaseTaggedItem(GenericTaggedItemBase):
    tag = models.ForeignKey(LowerCaseTag, related_name="tagged_items")

class YourModel(models.Model):
    tags = TaggableManager(through=LowerCaseTaggedItem)

save メソッドでタグ番号の範囲制限を適用することもできます。

于 2011-08-20T08:16:10.723 に答える
3

古い質問ですが、大文字と小文字を区別しないタグを処理するための次の設定があります。

TAGGIT_CASE_INSENSITIVE = True

既存のタグを検索するときに django-taggit を CASE-INSENSITIVE にしたい場合は、TAGGIT_CASE_INSENSITIVE 設定を True (デフォルトでは False) に設定する必要があります:

TAGGIT_CASE_INSENSITIVE = 真

ソース: https://django-taggit.readthedocs.io/en/latest/getting_started.html

于 2016-01-08T21:28:44.040 に答える
3

このブランチをチェックアウトすることをお勧めします。https://github.com/shacker/django-taggit FORCE_LOWERCASE 設定があります。

于 2011-05-26T20:28:35.177 に答える