1

レンダリングするテンプレートがありますが、いくつかのタグも含まれているため、特定の文字列にアクセスするのが難しくなっています。コードは次のようになります。

   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

4 に答える 4

4

真剣に、テンプレート言語を前処理しようとしないでください。テンプレート言語です!こんなものまで対応!

selected_typeテンプレート コンテキストに送信し、次の操作を行います。

<option {% if record.views = selected_type %} selected {% endif %}>'{{ selected_type }}'
于 2012-07-06T14:25:05.690 に答える
3

% 記号を 2 倍にする必要があります。

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' の場合

于 2012-07-06T13:37:22.247 に答える
0

%Python が 4 つのシンボルすべてを埋めようとしているため、エラーが発生しています。%次のように、それらの前に別のものを追加して、それらをエスケープする必要があります。

template="""
   <select>
   <option {%% if record.views = '%s' %%} selected {%% endif %%}>'%s'
   </select>
   """%(pop, pop)
于 2012-07-06T14:02:55.937 に答える
0

それらをエスケープするには、「%」を2倍にする必要があります

template="""
   <select>
   <option {%% if record.views = '%s' %%} selected {%% endif %%}>'%s'
   </select>
   """%(pop, pop)
于 2012-07-06T13:37:00.597 に答える