2012-01-28 7 views
2

オプションのtal属性では苦労します。私は私が定義するブロックに「オア・ナッシング」演算子を変更すると考えていたユーザーは、幅の値のいずれかのオプションを入力しない場合、それは437がデフォルトになりますように、それを維持したいTAL属性 - 属性変数が何もない場合は、代わりに "this"を入力してください

<tal:block define="y_width options/youtube_width | nothing;"> 

    <div width="437" tal:attributes="width y_width | string:600;"></div> 

</tal:block> 

しかし、それは動作しません。上記は属性の後ろに置いてみましたが、どちらの場合でもコードのばらばらになります。ユーザーの入力値が空の場合、コードのデフォルト値が特定の値になるようにするにはどうすればよいですか?

答えて

2

あなたは|パイプ演算子のみAttributeErrorまたはKeyError上で蹴るが、あなたの場合は「y_widthは」Noneになるように、ここではPythonの式を使用する必要があります:

<tal:block define="y_width options/youtube_width | nothing;"> 

    <div width="437" tal:attributes="width python:y_width or 600;" ></div> 

</tal:block> 
+0

はありがとうございました! ! – Mallow

関連する問題