在内部创建具有 jinja 结构的字符串
Creating strings with jinja structure inside
我正在尝试生成 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”,我得到了那个错误。
我也尝试使用 "format" 但错误仍然存在。
在这种情况下,您可以进行简单的字符串连接:
content = "<a href='{% url 'core.views.add_" + classname + "' %}' class=\"btn btn-default\">{% trans 'Add' %}</a>\n"
示例:
>>> classname = 'person'
>>> content = "<a href='{% url 'core.views.add_" + classname + "' %}' class=\"btn btn-default\">{% trans 'Add' %}</a>\n"
>>> content
>>> '<a href=\'{% url \'core.views.add_person %}\' class="btn btn-default">{% trans \'Add\' %}</a>\n'
您可以对 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"
如果您想在字符串中使用文字 %
,请使用两个百分号 %%
:
"<a href='{%% url 'core.views.add_%s' %%}' class=\"btn btn-default\">{%% trans 'Add' %%}</a>\n" % classname
如果使用format()
方法,则需要使用{{
和}}
:
"<a href='{{% url 'core.views.add_{}' %}}' class=\"btn btn-default\">{{% trans 'Add' %}}</a>\n".format(classname)
我正在尝试生成 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”,我得到了那个错误。 我也尝试使用 "format" 但错误仍然存在。
在这种情况下,您可以进行简单的字符串连接:
content = "<a href='{% url 'core.views.add_" + classname + "' %}' class=\"btn btn-default\">{% trans 'Add' %}</a>\n"
示例:
>>> classname = 'person'
>>> content = "<a href='{% url 'core.views.add_" + classname + "' %}' class=\"btn btn-default\">{% trans 'Add' %}</a>\n"
>>> content
>>> '<a href=\'{% url \'core.views.add_person %}\' class="btn btn-default">{% trans \'Add\' %}</a>\n'
您可以对 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"
如果您想在字符串中使用文字 %
,请使用两个百分号 %%
:
"<a href='{%% url 'core.views.add_%s' %%}' class=\"btn btn-default\">{%% trans 'Add' %%}</a>\n" % classname
如果使用format()
方法,则需要使用{{
和}}
:
"<a href='{{% url 'core.views.add_{}' %}}' class=\"btn btn-default\">{{% trans 'Add' %}}</a>\n".format(classname)