【发布时间】:2019-09-27 18:12:49
【问题描述】:
目前,我仍在学习 Django 并使用 Django 2.2 创建我的博客。但不知何故,当我使用 django-taggit 时出现错误。
如何通过标签过滤帖子?
我已阅读文档,但没有完全涵盖如何将其实施到实际项目中。
这是我的代码:
我尝试了几种不同的方法,但我仍在 StackOverflow 中搜索,但仍然没有答案。
/blog/tag/post-tagged 的结果与/blog 的结果相同。
那么如何从views.py 中过滤它呢?或者来自blog.html?。
所以/blog/tag/post-tagged 的结果仅来自标记的帖子。
这是我的代码:
models.py:
...
from taggit.managers import TaggableManager
"Post Model"
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
slug = models.SlugField(max_length=100, null=True, blank=True, unique=True)
title = models.CharField(max_length=200)
tags = TaggableManager(blank=True)
...
views.py:
def blogIndex(request):
posts = Post.objects.all().order_by("-created_date")[0:4]
context = {"posts": posts,}
return render(request, 'blog.html', context)
def Tagging(request, slug):
tags = Tag.objects.filter(slug=slug)
posts = Post.objects.all().order_by("-tags")
context = {
'tags': tags,
'posts': posts,
}
return render(request, 'blog.html', context)
urls.py:
path("tag/<slug:slug>/", views.Tagging, name='tagged'),
我的blog.html:
<div id="tags-middle">
<div class="tags-cloud">
Tags :
{% for tag in post.tags.all %}
<a href="{% url 'tagged' tag.slug %}">{{ tag.name }}</a>
{% endfor %}
</div>
</div>
【问题讨论】:
标签: django django-models django-templates django-taggit