2016-11-05 7 views
0

いくつかの情報をユーザーに表示しようとしています。データベース内の文字列からの電話番号。各クライアントには3つの電話番号、セル、自宅、その他があります。少なくとも1つは記入されますが、他は空白にすることができます。タイプがnoneの場合、jinja2テンプレートをフォーマットしますか?

jinjaで数字を書式設定すると、「なし」というエラーが表示されます。値がNoneの場合、書式設定をスキップする必要はありますか?コードはここにあります。

{% for entry in results %} 

           <div class="panel-heading">{{ entry.firstName }} {{ entry.lastName }}</div> 
           <div class="panel-body"> 
            <li>Email: {{ entry.email }}</li> 
            <li>Cell Phone: {{ "%s-%s-%s" | format(entry.cellNum[0:3], entry.cellNum[3:6], entry.cellNum[6:10]) }}</li> 
            <li>Home Phone: {{ entry.homeNum }}</li> 
            <li>Other Phone: {{ entry.otherNum }}</li> 
            <br> 
            <form action="#" method="post" class="sky-form"> 
             <input type="hidden" value="{{ entry.id }}" name="firstname"> 
            <button type="submit" class="button">Select Client</button> 
             </form> 

何か考えていますか?

+4

"電話番号はデータベースに整数として格納されます。"これをやりたいですか?電話番号に先行するゼロを付けることができます。 –

+1

あなたの問題に直接関係はありませんが、電話番号を整数として格納することはひどい考えです。あなたの電話番号が0から始まる場合はどうなりますか? – Aurora0001

+0

これは少なくともあなたのローカル電話システムで面白い機能を呼び出す可能性のある ''#* 76#* ''などの電話番号を使用している人からあなたを守ります:) –

答えて

0

方法について

{% if entry.homeNum %}{{ entry.homeNum }}{% endif %} 

テストデータ使用の前に。

1

JinjaはNoneタイプを "None"と表示できます。それは問題ではないはずです。

問題が最も可能性が高い。この部分です:

{{ "%s-%s-%s" | format(entry.cellNum[0:3], entry.cellNum[3:6], entry.cellNum[6:10]) }} 

cellNumがなしまたは未定義などではない場合、それは値を参照しようとすると、これは動作しません。最初にcellNumに電話してください。

{% if entry.cellNum %}{{ "%s-%s-%s" | format(entry.cellNum[0:3], entry.cellNum[3:6], entry.cellNum[6:10]) }}{% endif %} 

また、私はresults内のすべてのエントリはでこれを行うには、有効な値/オブジェクトであることを仮定している、あなたもかどうかを確認することをお勧めします。

関連する問題