5

我可以像这样在模板中一一获取所有标签的名称

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

4

2 回答 2

5

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

  1. 首先你应该有

    标签 = 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)

于 2016-01-12T21:21:38.210 回答
0

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

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

于 2015-10-16T23:11:32.593 回答