免责声明,我以前没有使用过Django或Python,因此非常感谢您的帮助/指导
我正在使用Jinja/Django语法编写报价单/发票模板。报价有多个行项目,其中一些项目可能会有折扣。我只想在html表中的任何一个项目有折扣的情况下呈现“折扣”列
我遇到的麻烦是,找出任何一个项目是否有折扣(美元或百分比),然后告诉模板是否有条件地呈现该html。
这是可用行项目数据的简化数组/列表:
lineItems=[
{acv=64000.0
discount=
discount_percentage=
price=64000
quantity=1
name=Item One
id=0}
{acv=44000.0
discount=1500
discount_percentage=
price=44000
quantity=1
name=Item One
id=1}
{acv=2000.0
discount=
discount_percentage=
price=2000
quantity=1
name=Item One
id=2}
]
起初,我想创建一个全局“hasItemDiscount”变量,然后使用for
循环遍历列表项并更新折扣值大于0的全局变量
大意如下:
{% set hasItemDiscount = false %}
{% for item in lineItems %}
{% if item.discount > 0 or item.discount_percentage > 0 %}
{% set hasItemDiscount = true %}
{% endif %}
{% endfor %}
及
{% if hasItemDiscount == true %}
<th scope="col">DISCOUNT</th>
{% endif %}
但是,我意识到不可能从循环的局部上下文更新全局变量。显然,创建一个全局变量也不是一个好主意
注意:我还要补充一点,我必须使用>;运算符或类似运算符,因为系统存在一个小问题,即如果对某个项目应用折扣,然后将其删除,则数据中的属性仍然存在,但为空,例如discount=
最终,html表中需要有条件地呈现两件事:1)表头“折扣”,以及2)如果任何一项有折扣,则折扣的额外表单元需要在所有行项目上呈现,即使它们没有折扣,这样表结构就不会中断
如果列表中没有项目具有折扣,则表标题或列中的关联单元格都不应呈现
希望这足够清楚
目前没有回答
相关问题 更多 >
编程相关推荐