在模板中迭代Django查询集

时间:2015-08-17 16:29:11

标签: django filter iteration

我创建了一个自定义过滤器,它返回一个对象的查询集。

in:templatetags

tab <- table(unlist(sapply(s, unique))) < 2
lapply(s, function(x) x[tab[x]])
模板中的

@register.filter(name = 'create_html_for_deleting_notes')
    def create_html_for_deleting_notes(task_pk):
    corresponding_notes = Note.objects.filter(its_task = Task.objects.filter(pk = task_pk))
    return(corresponding_notes)

这适用于打印我的查询集。我想迭代查询集,如:

模板中的

{% for corresponding_task in corresponding_tasks %}
    <h5>{{ corresponding_task | create_html_for_deleting_notes }}<h5/>
{% endfor %}

但是这给了我错误&#39;对于语句应该使用格式&#34;对于y中的x&#34;&#39;

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您需要删除过滤器|字符周围的空格。

但是,我认为你根本不需要过滤器。你没有发布你的模型,但看起来你在Task和Note之间有一个外键关系,所以你应该只使用反向访问器:

{% for corresponding_task in corresponding_tasks %}
    {% for note in corresponding_task.note_set.all %}
         {{ note }}
    {% endfor %}
{% endfor %}