【发布时间】:2023-01-26 18:46:26
【问题描述】:
我想就我的以下问题寻求您的帮助。几天来我一直在为这个问题而苦苦挣扎。
我有一个 word 模板,如下所示,在 docx 中。
===============
Name: {{ Personal_name }}
Age:{{ Personal_Age }}
Teenager/Adult: {% if Personal_Age ==18 %}
Teenager
{% else %}
Adult
{% endif %}
根据条件语句,“Teenager/Adult”值应为“Teenager”。但是,该值仍然显示为“Adult”,这表明条件语句不起作用。每个人都可以让我知道它的问题是什么吗?
还有,大家有没有教教我如何把“Age”的背景色变成红色,如果“Age”输入为空,会弹出一个评论框?
这也是我的脚本供您参考。
================================================ ======
from docxtpl import DocxTemplate,RichText
doc=DocxTemplate('test_word_2.docx')
context={'Personal_name':'Charlie','Personal_Age':RichText(18,color='FF0000',bold=True)}
doc.render(context)
doc.save('test_word_2_test'+'.docx')
================================================ =
当前的最终输出附在此处
谢谢大家。
【问题讨论】:
-
我没有使用过那个库,但你正在传递一个
RichText(18, ...)实例,它会根据整数18进行检查。 -
我不能将 18 传递给 RichText 吗?但是我需要在 RichText 函数中使用颜色函数和粗体样式。
-
不可以,但比较似乎永远不会评估为
True。 RichText 不再是值 18,而是一个包含格式信息的包装器。这是完全不同的东西。最简单的方法是向context添加一个新变量,例如Personal_Age_int,它只包含18,并且可以在模板中进行比较