Есть ли способ удалить дублирующиеся теги?

В выпадающем списке повторяются и отображаются одни и те же теги. Он перебирает теги, используемые в каждом сообщении, но не проверяет, повторяются ли теги или нет. Есть ли способ избежать этого повторения? Мой выпадающий список выглядит следующим образом:

<div class="dropdown">
    <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                Tags
    </button>
        <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
                {% for post in posts %}
                    {% for tag in post.tags.all %}
                        <a class="dropdown-item" href="{% url 'post_tag' tag.slug %}">
                            {{ tag.name }}
                        </a>
                    {% endfor %}
                {% endfor %}

        </div>
</div>

views.py

def home(request, tag_slug=None):
posts = Post.objects.all()
# tag post
tag = None
if tag_slug:
    tag = get_object_or_404(Tag, slug=tag_slug)
    posts = posts.filter(tags__in=[tag])
    
return render(request, 'blog/home.html', {'posts':posts})

Любая информация здесь будет полезна. Спасибо!

Вы можете послать 'tags' в контексте вместе с 'posts', тогда вы сможете подготовить свои уникальные теги для отображения следующим образом

....
tags = Tag.objects.filter(id__in=Post.objects.all().values('tags'))
return render(request, 'blog/home.html', {'posts': posts, 'tags': tags})

и просто используйте его в шаблоне, как это

<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
    {% for tag in tags %}
    <a class="dropdown-item" href="{% url 'post_tag' tag.slug %}">
        {{ tag.name }}
    </a>
    {% endfor %}
</div>
Вернуться на верх