如何格式化这样的字符串?

时间:2012-07-06 13:30:02

标签: python django

我有一个要渲染的模板,但由于它也有一些标签,因此很难访问特定的字符串。代码如下:

   template="""
   <select>
   <option {% if record.views = '%s' %} selected {% endif %}>'%s'
   </select>
   """%(pop, pop)

这里我想要pop的值,但是它给出了一个错误:

    Caught TypeError while rendering: not enough arguments for format string

任何解决方案我如何访问这些字符串格式。 感谢

4 个答案:

答案 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)