【问题标题】:Django-taggit how to get all tagsDjango-taggit如何获取所有标签
【发布时间】:2014-12-06 17:36:21
【问题描述】:

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

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

【问题讨论】:

  • 您能用您的表单类更新您的问题吗?您可能需要使用初始值填充“标签”字段

标签: django django-taggit


【解决方案1】:

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

  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)

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 2018-03-28
      相关资源
      最近更新 更多