【问题标题】:How to print all tags by using taggit?如何使用 taggit 打印所有标签?
【发布时间】:2018-05-10 06:40:59
【问题描述】:

我有一个小问题,即我希望能够打印我的 Django 项目中的所有 taggit 标签,但我似乎无法让它工作。到目前为止,这是我想出的:

views.py

from taggit.models import Tag
tags_all = Tag.objects.all()

然后我使用 return 函数返回 tags_all。然后我将以下内容添加到我的模板中:

{{ tags_all }}

但是,我在渲染模板后得到的结果如下:

<QuerySet [<Tag: security>, <Tag: Internet>]>

我希望能够只获取标签,而不需要 QuerySet 位。我怎样才能做到这一点?提醒一下,我希望能够获取项目中的所有标签。我曾尝试使用 taggit-templatetags 和 taggit-templatetags2,但他们认为 Django 2+ 无法正常工作。

您的帮助将不胜感激。

提前谢谢你。

【问题讨论】:

    标签: django tags


    【解决方案1】:

    这样可以获得更好的外观:

    {% for tag in tags_all %}
         {{ tag }} {% if not forloop.last %}, {% endif %}
    {% empty %}
         No tags
    {% endfor %}
    

    【讨论】:

    • 感谢 Lemayzeur 提供这段代码。它完成了我需要它做的事情,还使标签看起来排列得很好。
    【解决方案2】:

    您需要使用for 遍历查询集:

    {% for tag in tags_all %}
        {{ tag.name }} <br>
    {% endfor %}
    

    另外,由于每个标签都是对象,您可以使用.访问标签的属性,例如tag.name

    【讨论】:

    • 感谢 Neverwalkaloner 提供此代码。我已将您的答案标记为有用,但下面的答案是我正在寻找的答案,因为它使用逗号分隔符很好地排列了标签。祝你有美好的一天。
    猜你喜欢
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    相关资源
    最近更新 更多