0

我有两个for循环,第一个(for i in var)用于获取帖子,另一个用于获取该帖子的标签(帖子模型中的ManyToManyField):

{% for i in var %}
    {% for j in i.tags.all %}
        {{ j.name }}
    {% endfor %}
{% endfor %}

为什么这行不通?

编辑:

以下是变量包含的内容:

变量:

[<SearchResult: myapp.post (pk='1')>, <SearchResult: myapp.post (pk='2')>]

这是{{ i.tags }}:

<django.db.models.fields.related.ManyRelatedManager object at 0x1620dd0>

如果我尝试用 .all 迭代它,它什么也不返回。

编辑2:

这可能是问题所在 - var 是 SearchQuerySet (django haystack) 中的一个变量:

var = SearchQuerySet().all()
4

2 回答 2

1

在模板内部,j类似于<SearchResult: myapp.post (pk='1')>,它没有.tags属性。Try for j in i.object.tags.all.object指的是实际的 Model 实例。

请注意,Django 通常不会抱怨i.tags在模板渲染期间尝试访问不存在的属性(此处)。因此,什么也不渲染也可能意味着不正确的属性引用。

于 2012-10-05T15:01:44.073 回答
0

通过将标签字段添加到干草堆搜索索引中来解决它。现在它输出标签列表。谢谢大家的帮助!

于 2012-10-05T19:47:06.307 回答