Постфильтр на основе тегов в django taggit (пакет) - PullRequest
0 голосов
/ 20 сентября 2019

Я только что установил django taggit, следуя официальной документации.Все работает хорошо, но когда я нажимаю на теги, он не фильтрует пост, содержащий эти теги, вот мой код.Код, содержащий файл models.py

..............
from taggit.managers import TaggableManager
..................
class Post(models.Model):
    STATUS_CHOICES = ((DRAFT, _('draft')),
                      (PUBLISHED, _('published')))
    author = models.ForeignKey(get_user_model(), verbose_name=_(
        "Author"), on_delete=models.CASCADE, related_name='blog_posts')
    title = models.CharField(_("Title"), max_length=200, unique=True)
    slug = models.SlugField(_("Slug"), unique_for_date='publish')
    status = models.IntegerField(
        _('status'), db_index=True,
        choices=STATUS_CHOICES, default=DRAFT)
    tags = TaggableManager()



    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("blog:post_detail", kwargs={
            "pk": self.pk
        })

код, содержащий файл views.py

from django.views.generic import ListView
class PostListView(ListView):
    model = Post
    queryset = Post.published.all().order_by('-publish')
    context_object_name = 'post_list'
    template_name = "client/pages/blog_list.html"
    paginate_by = 7

файл urls.py

from .views import PostListView,
..........
    path('tag/<slug:tag_slug>/', PostListView.as_view(), name='post_list_by_tag'),
..........

и в файле шаблонов

<ul class="tags-inline">
                <li>Tags:</li>
                {% for tag in post_detail.tags.all %}
                <li>
                  <a href="{% url 'blog:post_list_by_tag' tag.slug %}">{{ tag.name }}</a>
                  ,
                </li>
                {% endfor %}
</ul>

1 Ответ

0 голосов
/ 20 сентября 2019

Вам нужно изменить свой набор запросов для фильтрации на основе тега.Это возвращает все на основе all()

queryset = Post.published.all().order_by('-publish')

Я не уверен, как вы фильтруете на Taggit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...