gpt4 book ai didi

python - 如何解决 Django 中显示 "Could not parse the remainder"的 TemplateSyntaxError

转载 作者:太空宇宙 更新时间:2023-11-03 20:31:22 24 4
gpt4 key购买 nike

我正在尝试使用 for 循环重复渲染 HTML 代码块。但是当我重新加载浏览器时 Django 抛出 TemplateSyntaxError

<div class="carousel-item active">
{% for number in range(3) %}
<!--Slide {{ number + 1 }}-->
<div class="row">
{% for number in range(6) %}
<!--Slide 1 Col {{ number + 1 }}-->
<div class="col-lg-2">
<div class="card" style="width: 100%;">
<img class="card-img-top" src="..." alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
</div>
{% endfor %}
</div>
{% endfor %}
</div>

我期望重复渲染 for 循环内的 block ,但得到“TemplateSyntaxError at/无法解析余数:“(3)”来自“range(3)””

最佳答案

Django 不允许在模板中进行函数调用(带参数)以及下标。理由是业务逻辑不应该是模板的一部分。因此,您可以通过上下文将 range(3)range(6) 对象传递给模板。 {{ number + 1 }} 也不起作用,因为也不支持此类运算符。

另一种方法是使用 Jinja ,它是一个模板引擎,允许在模板中使用此类 Python 语法。

由于数字非常小,第三种选择是使用字符串文字:

<div class="carousel-item active">
{% for <b>row</b> in <b>'123'</b> %}
<!--Slide {{ <b>row</b> }}-->
<div class="row">
{% for <b>col</b> in <b>'123456'</b> %}
<!--Slide 1 Col {{ <b>col</b> }}-->
<div class="col-lg-2">
<div class="card" style="width: 100%;">
<img class="card-img-top" src="..." alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
</div>
{% endfor %}
</div>
{% endfor %}
</div>

关于python - 如何解决 Django 中显示 "Could not parse the remainder"的 TemplateSyntaxError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57484995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com