4

我正在使用 django-taggit。我想让所有标签都小写,还设置标签号的范围(比如在 1 到 5 之间,就像 stackoverflow 一样)。有什么方法可以用 django-taggit 轻松完成吗?谢谢!

4

3 回答 3

3

你可能想看看这个分支。https://github.com/shacker/django-taggit它有一个 FORCE_LOWERCASE 设置。

于 2011-05-26T20:28:35.177 回答
3

使用 django-taggit 很容易做到。子类 TagBase 并在 save 方法中强制使用小写约束。其余的是锅炉点,因此 TaggableManager 可以使用您的子类。

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 在查找现有标签时不区分大小写,则必须将 TAGGIT_CASE_INSENSITIVE 设置设置为 True(默认为 False):

TAGGIT_CASE_INSENSITIVE = 真

来源:https ://django-taggit.readthedocs.io/en/latest/getting_started.html

于 2016-01-08T21:28:44.040 回答