Django-taggit如何获取所有标签

时间:2014-12-06 17:36:22

标签: django django-taggit

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

{% 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 }}”?

2 个答案:

答案 0 :(得分:2)

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

  1. 首先你应该

    tags = TaggableManager(空白=真)

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

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

答案 1 :(得分:0)

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

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