- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 django 编写博客,并且在博客条目的底部我想显示与我使用 django-taggit 附加的标签相关的 5 个最新条目。
所以我想我需要将当前博客条目(我们正在查看的博客条目)传递给模板标签,该模板标签将检索具有相同 taggit 标签或足够接近的条目。但让我们从简单的开始,假设检索共享第一个 taggit-tag 的条目。
这就是我想到的:
from django.template import Library, Node
from django import template
from blog.models import Entry
register = Library()
class RecentContentNode(Node):
def __init__(self, num, object, varname):
self.object = template.Variable(object)
self.num, self.varname = num, varname
def render(self, context):
object = self.object.resolve(context)
tag_list = object.tags.all()
tag_names = tag_list[0].name
context[self.varname] = Entry.objects.filter(tags__name__in=[tag_names])[:self.num]
return ''
@register.tag
def get_recent_related(parser, token):
bits = token.contents.split()
if len(bits) != 5:
raise TemplateSyntaxError, "get_latest_entries tag takes exactly four arguments"
if bits[3] != 'as':
raise TemplateSyntaxError, "fourth argument to the get_recent tag must be 'as'"
return RecentContentNode(bits[1], bits[2], bits[4])
但它没有做任何事情。使用 print 语句单步执行它,我可以看到它通过 init 到达 最近内容节点,但没有进入 render 方法。我没有收到任何错误或警告,所以我不知道会发生什么。但我认为这是变量/解决问题,因为我看到网上的其他人也有类似的问题,但他们经常回复帖子说他们修复了它,但没有说明如何修复,所以我不知道。
我错过了什么明显的事情?或者有更好的方法..
最佳答案
您可以直接在上下文中传递列表。如果您使用基于类的通用 View ,请传递
def get_context_data(self, **kwargs):
context_data = super(EntryView, self).get_context_data(**kwargs)
related_entries = Entry.objects.filter(
tags__name__in=list(self.object.tags.values_list('name', flat=True))
).exclude(id=self.object.id)
context_data['related_entries'] = related_entries
return context_data
https://docs.djangoproject.com/en/dev/topics/class-based-views/#adding-extra-context
您应该仅在真正需要的 View 中添加此内容,并根据您需要显示的内容进行定制,而不是盲目地将其添加到任何 View 的上下文中,无论 View 是什么。
关于python - django templatetag,获取与当前帖子的 taggit-tags 相关的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7032503/
我有以下型号 class Entry(models.Model): user = models.ForeignKey(User) created = models.DateTimeFi
我正在使用 django-taggit 对于我的一个项目,根据文档,我在我想在其中使用标签/关键字的模型中执行了以下操作。 模型.py from taggit.managers import Tagg
我正在尝试通过 taggit 和 taggit 序列化程序在我的模型中添加标签。我在 Rest 框架中制作 API。我按照说明操作( https://github.com/glemmaPaul/dja
我正在尝试通过 taggit 和 taggit 序列化程序在我的模型中添加标签。我在 Rest 框架中制作 API。我按照说明操作( https://github.com/glemmaPaul/dja
例如: tags_input = "hello, foo, bar, ok" tagset = tag_parser(tags_input) # {'bar', 'foo', 'hello', 'ok
我正在使用 django-taggit 并且在尝试过滤关系时遇到了一个问题。 有以下型号: class Artist(models.Model): tags = TaggableManage
在这里发疯... 在外壳中,我可以执行以下操作: product.tags.add("a_new_tag") 将标签添加到数据库中,并且与产品的标签关联正常工作。 (即,当我执行 Product.ob
我可以在模板中像这样一一获取所有标签的名称 {% for tag in blog.tags.all %} {{ tag.name }} {% endfor %} 我可以从这样的表单中获取输入
我现在正在构建一个基本的时间记录应用程序,我有一个使用 django-taggit 的 todo 模型。我的 Todo 模型如下所示: class Todo(models.Model): pr
我正在使用 django-taggit在我的一个项目上,我能够保存标签并将其与特定记录联系起来。现在的问题是如何显示与每条记录相关的标签? 例如,在我的页面上,我想显示一个包含标题和内容的记录,然后在
假设我有一个模型: class Entry(models.Model): ... tags = TaggableManager() 当我在模板中迭代 Entry.objects.all
这是一个模型类 class ModelName(models.Model): (...) pasta = TaggableManager(verbose_name=u'Pasta') 和一个表
假设我有三个标签。我想显示有多少对象链接到它。像这样: 苹果 (3) 橙色 (0) 香蕉 (5) 我如何使它以最简单的方式工作,最好不要在数据库中创建新属性? 我猜我需要遍历所有标签,计算它们,然后把
我正在使用 Django 3.2 和 django-taggit 1.4 我有这样一个模型: class Meal(models.Model): # some fields is_co
有没有人在 haystack 中使用 Django taggit?我们如何使标签字段可被 haystack 索引? 我试过了: class EventIndex(indexes.SearchIndex
假设您有一个数据库,其中包含在 Djano 应用程序后面运行的用户对象并且您想使用 django-taggit 来标记用户对象,以便您可以使用一些方便的过滤来检索子组。 此外,您还有一个仪表板,您希望
我使用 django-taggit-autocomplete,但是在进行方案迁移时,出现错误 ! Cannot freeze field 'main.hotels.tags' ! (this fi
我有一个使用 django-taggit 的模型。我想执行向该模型添加标签的南方数据迁移。但是,.tags 管理器在 South 迁移中不可用,您必须使用 South orm['myapp.MyMod
是否可以通过夹具初始化标签数据,如下所示; [{ "fields": { "name": "tag1" }, "model": "taggit.Tag",
这可能是个愚蠢的问题,但我下载了 Django-taggit 并且文档中提到为我想要关联的每个模型添加一个 TaggableManager 管理器。这很好,但是我“pip-ed”的来自外部应用程序的模
我是一名优秀的程序员,十分优秀!