我正在使用带有 ZPT 模板的 Pyramid 来制作 Web 应用程序。我正在尝试制作一个表单模板宏库,以使设置表单字段的当前值等事情变得更轻松。我还使用 lingua 消息提取器自动提取字符串以进行本地化。不过,我不知道如何使提取器与宏标签上的属性一起工作。例如,假设我有一个如下所示的宏:
<tal:block metal:define-macro="text">
<input type="text" name="${field}" value="${request.params.get(field) or default_value}"/>
</tal:block>
我在这样的页面模板中使用它:
<tal:block tal:define="field 'fred'; default_value _('initial value')" metal:use-macro="form.macros['text']"/>
消息提取器不会提取文本“初始值”。有没有办法做到这一点?如果可能的话,我想将字符串保留在模板中,我知道我可以通过在可调用视图中生成默认值的所有字符串来解决这个问题。也许有更好的方法将值传递给宏以用于属性?