python - 在内部创建具有 jinja 结构的字符串

标签 python django jinja2

我正在尝试生成 Django 代码,但是在尝试创建模板时,

classname = 'person'
content = "<a href='{% url 'core.views.add_%s' %}' class=\"btn btn-default\">{% trans 'Add' %}</a>\n" % classname

我收到以下错误:

TypeError: %u format: a number is required, not unicode

Python 尝试计算“{% u”,但我得到了那个错误。 我也尝试使用“格式”,但错误仍然存​​在。

最佳答案

您可以对 jinja 的 % 字符进行双重编码:

content = "<a href='{%% url 'core.views.add_%s' %%}' class=\"btn btn-default\">{%%  trans 'Add' %%}</a>\n" % classname

或对 Jinjas {} 字符进行双重编码并使用 format():

content = "<a href='{{% url 'core.views.add_{classname}' %}}' class=\"btn btn-default\">{{% trans 'Add' %}}</a>\n".format(classname=classname)

或者简单地将您的模板分成三个部分:

content = "<a href='{% url 'core.views.add_"
content += '%s' % classname
cotnent += " %}' class=\"btn btn-default\">{% trans 'Add' %}</a>\n"

关于python - 在内部创建具有 jinja 结构的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33896156/

相关文章:

python - newrelic python 代理问题

python - Django 中的动态逻辑查询构建器

python - Flask 服务器运行 Bokeh 应用程序 : how to access plots from a script generated by server_document() function

javascript - 模板中 Django 表单的媒体类对象的单独 JS 和 CSS 列表输出

python - argparse 在代码中的位置

python - 列表是另一个列表的子集

javascript - request.COOKIES 与 django 项目中的 document.cookie

c++ - 最小线性回归程序

xml - 使用 Ansible 在 Jinja2 中转义特殊 XML 字符

django - 你如何在 Jinja2 的 View (或模板)中将字符串标记为 "Safe"?