繁体   English   中英

Django-taggit如何获取所有标签

[英]Django-taggit how to get all tags

我可以在模板中逐个获取所有标签的名称

{% for tag in blog.tags.all %}
    <span class="label label-default">{{ tag.name }}</span>
{% endfor %}

我可以从像{{ form.tags }}这样的表单中获取输入,它给了我:

<input id="id_tags" name="tags" type="text" value="xxx,y y y,zzz">

但是我想在我的模板中自定义我的输入

<input id="id_tags" class="form-control" maxlength="50" name="title" type="text" placeholder="tags" value="{{ form.tags }}">

如何设置输入的值=“ {{ form.tags }} ”?

在您的模型中,您可以执行以下操作:

  1. 首先你应该有

    tags = TaggableManager(空白= True)

  2. 以下将获取所有标记,您可以在list_field中使用get_tags来获取每个记录的所有标记。

    def get_tags(self): tags = [] for tag in self.tags.all(): tags.append(str(tag)) return ', '.join(tags)

如果可能的话,我建议你最好使用Django的基于类的表单(而不是手工编写HTML),因为Taggit已经为你处理了这个问题。

但是为了尝试回答你的问题,如果你想获得特定对象的所有标签,我认为你需要的是blog.tags.values_list('name', flat = True) ,这意味着你需要编写自定义模板标记或 - 如果您使用“博客”一词来表示“博客帖子 ”并且您在单个博客帖子页面上 - 您可以将上述内容添加到视图的上下文中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM