我有一个要渲染的模板,但由于它也有一些标签,因此很难访问特定的字符串。代码如下:
template="""
<select>
<option {% if record.views = '%s' %} selected {% endif %}>'%s'
</select>
"""%(pop, pop)
这里我想要pop的值,但是它给出了一个错误:
Caught TypeError while rendering: not enough arguments for format string
任何解决方案我如何访问这些字符串格式。 感谢
答案 0 :(得分:4)
说真的,不要试图预处理模板语言。这是一种模板语言!它处理这类事情!
将selected_type
发送到模板上下文中,然后执行:
<option {% if record.views = selected_type %} selected {% endif %}>'{{ selected_type }}'
答案 1 :(得分:3)
你需要加倍%符号:
template="""
<select>
<option {%% if record.views = '%s' %%} selected {%% endif %%}>'%s'
</select>
"""%(pop, pop)
产量
<select>
<option {% if record.views = '1' %} selected {% endif %}>'1'
</select>
表示pop ='1'
答案 2 :(得分:0)
你应该加倍“%”来逃避它们
template="""
<select>
<option {%% if record.views = '%s' %%} selected {%% endif %%}>'%s'
</select>
"""%(pop, pop)
答案 3 :(得分:0)
您收到错误是因为Python希望填充所有四个%
符号。你需要通过在它们前面添加另一个%
来逃避它们,如下所示:
template="""
<select>
<option {%% if record.views = '%s' %%} selected {%% endif %%}>'%s'
</select>
"""%(pop, pop)