Django模板中使用{% include %}传递queryset参数报错问题咨询
解决Django模板{% include %}传递QuerySet的语法问题
嘿,别担心,完全可以在{% include %}的with子句里传递QuerySet!你碰到的语法错误根本不是QuerySet的问题,只是模板语法用错了而已~
你原来的写法:
{% include 'your_template_here' with keyword={{ store_list }} %}
错在不该给store_list套上双大括号{{ }}。因为{% ... %}本身就是Django的模板标签块,在这个块内部引用变量时,直接写变量名就行,不需要再用模板变量的包裹符号。
正确的写法应该是这样:
{% include 'your_template_here' with keyword=store_list %}
额外说明:
不管是QuerySet、普通字符串、数字,还是其他模板上下文里能访问到的变量,都可以用这种直接写变量名的方式传递给include的with子句。
举个实际使用的例子:
假设你在视图里把store_list(一个Store模型的QuerySet)传到了模板上下文,那么在主模板里用上面的正确写法传递后,在被包含的your_template_here.html里,就可以直接遍历这个QuerySet了:
{% for store in keyword %} <p>{{ store.name }} - {{ store.address }}</p> {% endfor %}
如果需要传递多个参数,只需要用空格分隔不同的参数赋值即可:
{% include 'your_template_here' with stores=store_list title="我的店铺列表" %}
内容的提问来源于stack exchange,提问作者Jay P.
相关产品推荐
相关产品推荐

