【问题标题】:Post filter on the basis of tags in django taggit(package)根据 django taggit(package) 中的标签进行后置过滤
【发布时间】:2019-09-20 07:56:18
【问题描述】:

我刚刚按照官方文档安装了 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>

【问题讨论】:

    标签: django


    【解决方案1】:

    您需要更改查询集以根据标签进行过滤。这将带回基于all() 的所有内容

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

    我不确定你如何在 Taggit 上过滤

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-14
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      • 2021-12-17
      相关资源
      最近更新 更多