Skip to main content
 首页 » 编程设计

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

2025年05月04日50del

我正在尝试生成 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"