问题标签 [coffin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1497 浏览

django - 如何从 Jinja 的扩展中访问上下文变量?

我通过棺材使用django+jinja2,我不明白如何访问扩展中的上下文变量。例如,我有这个:

所以我需要a在方法中获取变量render。我该怎么做?

0 投票
0 回答
655 浏览

python - 带有棺材扩展的 Babel 和 jinja2

我正在尝试使用命令行工具用 Babel 翻译 jinja2/coffin 模板。问题是函数 babel_extract 卡在 {% url %} 或 {% csrf_token %} 等棺材标签上。

首先,为了检测问题,我修改了 jinja.ext.babel_extract 并在渲染时在异常上添加了“print e”。

当我使用 Babel 运行 extract 方法时,它会打印出以下错误:

然后我编辑了我的 babel 配置以添加棺材库。我还设置了环境变量以将我的 django 项目添加到我的 python 路径并将 django 设置模块设置为我的 settings.py。

现在,当我运行 extract 方法时,会发生此错误:

extracting messages from templates/brands.html (extensions="coffin.template.Library", encoding="utf-8") Traceback (most recent call last): File "/usr/local/bin/pybabel", line 9, in <module> load_entry_point('Babel==0.9.6', 'console_scripts', 'pybabel')() File "/Library/Python/2.7/site-packages/Babel-0.9.6-py2.7.egg/babel/messages/frontend.py", line 1107, in main return CommandLineInterface().run(sys.argv) File "/Library/Python/2.7/site-packages/Babel-0.9.6-py2.7.egg/babel/messages/frontend.py", line 651, in run return getattr(self, cmdname)(args[1:]) File "/Library/Python/2.7/site-packages/Babel-0.9.6-py2.7.egg/babel/messages/frontend.py", line 912, in extract for filename, lineno, message, comments in extracted: File "/Library/Python/2.7/site-packages/Babel-0.9.6-py2.7.egg/babel/messages/extract.py", line 171, in extract_from_dir strip_comment_tags): File "/Library/Python/2.7/site-packages/Babel-0.9.6-py2.7.egg/babel/messages/extract.py", line 201, in extract_from_file strip_comment_tags)) File "/Library/Python/2.7/site-packages/Babel-0.9.6-py2.7.egg/babel/messages/extract.py", line 275, in extract for lineno, funcname, messages, comments in results: File "/Library/Python/2.7/site-packages/jinja2/ext.py", line 588, in babel_extract auto_reload=False File "/Library/Python/2.7/site-packages/jinja2/environment.py", line 279, in __init__ self.extensions = load_extensions(self, extensions) File "/Library/Python/2.7/site-packages/jinja2/environment.py", line 76, in load_extensions result[extension.identifier] = extension(environment) TypeError: __init__() takes exactly 1 argument (2 given)