我正在尝试django-taggit并且非常享受它。我无法弄清楚的一件事是,如何使用filter_horizontal选项(甚至复选框)将默认的逗号分隔标记输入更改为django默认的多对多字段。这对我想做的事情更有意义,因为我只希望管理员能够创建标签,内容制作人只需从可用的内容中选择
在这里找到了类似的问题
Using Check boxes in Taggit
但我无法理解必须插入的地方
答案 0 :(得分:2)
没有时间尝试理解taggit是如何工作的,以便达到我的需要,所以我提出了一个快速的解决方法 - 在模型中创建一个方法来检索所有可用的标签并在标签字段的帮助文本。
tags = TaggableManager(blank=True, help_text = tag_helptext())
def tag_helptext():
help_text = "Options: "
for t in Tag.objects.all():
help_text += t.name + " ||| "
return help_text
然后在管理员中我删除了权限,为除了超级用户之外的所有人创建新标签 感觉有点hackish,但提供我需要的东西(使用户可以轻松使用现有标签,避免他们创建新标签)