Django taggit:如何允许多字标签

时间:2015-05-28 17:54:54

标签: django

Django-taggit自动将像“软件工程”这样的标签分成[“软件”,“工程”]。我正在编写的应用程序通过看到它的人的全名来标记某个数据结构,因此在空格中拆分“FirstName LastName”将是不正确的。

如何覆盖此行为?

我认为这将是一个自定义小部件的行,通过分割逗号来清除输入,但我无法弄清楚如何与taggit进行交互,或者如何设置它以开始用。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我不知道当您询问时 django-taggit 是否已回复此问题,但我想提供一个答案(2021 年),因为我刚刚遇到了同样的问题。

步骤 1

我的项目中有一个 tags 应用。如果你不这样做,你真的可以把它放在任何地方。稍后您将只需要“虚线路径”。

tags/utils.py

def custom_tag_string(tag_string):
    """ takes in a string, returns a list """
    if not tag_string:
        return []
    if ',' not in tag_string:
        return [tag_string]
    return [t.strip() for t in tag_string.split(',')]

步骤 2

您需要 custom_tag_string 实用程序函数的虚线路径。

settings.py

TAGGIT_TAGS_FROM_STRING = 'tags.utils.custom_tag_string'

这是可行的,因为 django-taggit 提供了一种覆盖 taggit 附带的 taggit.utils._parse_tags 函数的方法。更多Require Variable Declaration