2010-11-22 8 views
0

倉庫のロール紙の位置、重量、ステータスを表示するマップのようなテーブルを作成したいと思います。位置には、レーン(A、B、C、D、E)と位置(1,2,3、...、13)が含まれます。ステータスは、ロール紙の重量に応じて4つの場合があります。異なる色で表示したい:
1.重量> 700 kg。 ---緑色
2. 400 <重量< 700 kgs。 ---青
3. 100 <重量< 400 kgs。 ---イエロー
4. 100 <重量kg。 ---レッドdjangoテンプレートにリスト付きのカスタムテーブルを作成する

たとえば、コード「AAA111」の2つの紙ロールがB-4およびB-9にあります。体重はそれぞれ300kgと500kgです。したがって、地図ではB-4に黄色、B-9に青色が表示されます。

テンプレート(例:inventory.html)の「for」タグを使用してリストからテーブルを作成しようとしました。 posb = ['1'、 '2'、 '3'、 '4'、 '5'、 '' ')リストは、位置リスト(posb)、位置リスト(mstr) mstr = [(u'B '、4L)、(u'B'、u'B ')、u'B'、u'B '、u'B'、u'B '、u'B'ここで、9L)]
wlist = [300、500]

は、問題は、このコードは、に従って表のセルを超える作成されているinventory.html

 {% for pos in posb %} 

     {% if pos %} 

      {% if "'B', "|add:pos in mstr %} 

       {% for wt in wlist %} 

        {% if wt > 700 %} 

         <td class="green">{{ wt }}</td> 

        {% endif %} 

        {% if 400 < wt and wt < 700 %} 

         <td class="blue">{{ wt }}</td> 

        {% endif %} 

        {% if 100 < wt and wt < 400 %} 

         <td class="yellow">{{ wt }}</td> 

        {% endif %} 

        {% if wt < 100 %} 

         <td class="red">{{ wt }}</td> 

        {% endif %} 

       {% endfor %} 

      {% else %} 

       <td class="gray"></td> 

      {% endif %} 

     {% else %} 

      <td></td> 

     {% endif %} 

    {% endfor %} 

レーンBのコードの行に関連していますwlist内のアイテムの数。 link text(申し訳ありませんが、私の評判は画像を投稿するのに十分ではありません)

私は長い間この問題に立ち往生しています。誰でも助けてくれますか?

ありがとうございました。

答えて

0

if節にはいくつかの不都合があるようです。

は、あなたではなく

if 100 < wt and wt < 400 

(エトセトラ)より

if 100 >= wt and wt < 400 

を意味しないのですか?

+0

重量が100〜400キログラムであることを意味します:) – Protocole

+0

そうです、あなたのロジックが正しくないように、/ –

+0

wt> = 100とwt <400の場合は意味しますか? 100 <= wtとwt <400の場合と同じです – Protocole

0

テンプレート内のすべてのロジックを実行する代わりに、ロジックを処理する関数を記述し、値を受け取って関数に渡すcustom template tagを書き込む方が簡単です。

+0

私はこの問題を処理する関数の例ですか? – Protocole

+0

私の実際の問題は、地図にダブルブロックが現れることです。私は一度にウェイトリスト(wlist)から値 "weight"を引き出して関数に渡すことはできません。この場合、wlistの両方の値は一度に関数に渡され、提供された画像で見られるように2倍のセルが2回発生します。 – Protocole

+0

それで、それらをすべてシーケンスとして渡し、関数が最大値または合計値を適切に見せるようにします。 –

関連する問題