Django-taggit自动将像“软件工程”这样的标签分成[“软件”,“工程”]。我正在编写的应用程序通过看到它的人的全名来标记某个数据结构,因此在空格中拆分“FirstName LastName”将是不正确的。
如何覆盖此行为?
我认为这将是一个自定义小部件的行,通过分割逗号来清除输入,但我无法弄清楚如何与taggit进行交互,或者如何设置它以开始用。
提前致谢!
答案 0 :(得分:0)
我不知道当您询问时 django-taggit 是否已回复此问题,但我想提供一个答案(2021 年),因为我刚刚遇到了同样的问题。
我的项目中有一个 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(',')]
您需要 custom_tag_string
实用程序函数的虚线路径。
settings.py
TAGGIT_TAGS_FROM_STRING = 'tags.utils.custom_tag_string'
这是可行的,因为 django-taggit 提供了一种覆盖 taggit 附带的 taggit.utils._parse_tags
函数的方法。更多Require Variable Declaration。