我有两个for循环,第一个(对于i in var)用于获取帖子,另一个用于获取该帖子的标签(Post模型中的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()
答案 0 :(得分:1)
在模板内部,j
类似于<SearchResult: myapp.post (pk='1')>
,其中没有.tags
属性。试试for j in i.object.tags.all
,.object
引用实际的模型实例。
请注意,Django通常不会抱怨在模板渲染过程中尝试访问不存在的属性(此处为i.tags
)。因此,渲染任何东西也可能意味着不正确的属性引用。
答案 1 :(得分:0)
通过将标记字段添加到haystack searchindex中来解决它。现在它输出标签列表。谢谢大家的帮助!