python 2.6、Redhat6.3上のDjango1.3.1
Djangoでは、値に応じてテーブルセルの背景色を変更するにはどうすればよいですか。たとえば、10を超える場合は赤、7から9の間はオレンジ、7未満の場合は緑などです。
データは非djangoデータベース/モデルからのものです。
テーブルを反復処理するために標準テンプレートを使用していますが、これにカスタムテンプレートを使用しても問題はありません。
私は次のように見えます
これはセルの色の変更を扱いますが、範囲内ではなく、セルの具体的な値に基づいているようです。
ビューに次のテストコードを使用する
def dashboard(request):
if request.user.is_authenticated():
user = request.user.first_name
else:
return redirect('/bcpm/login')
table_headers = ['Colmun1','Column2','Column3']
table_data = [['test1',2,3],['test2',2,4],['test3',5,5]]
page_title = 'Dashboard'
template_dict = {'header_list':table_headers, 'page_title':page_title,
'results':table_data,'username':user}
return render_to_response('dashboard.html',template_dict)enter code here
および次の汎用テーブルテンプレート:
<table border=1 width=98% style="margin-left:12px;">
<tr>
{% for item in header_list %}
<th>{{ item }}</th>
{% endfor %}
</tr>
{% for row in results %}
<tr>
{% for line in row %}
<td>{{line}}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
ありがとう。
ほぼ解決しました。
以下のbrianbuckの助けを借りて、私は次のことを考え出しました。
def dashboard(request):
if request.user.is_authenticated():
user = request.user.first_name
else:
return redirect('/login'
table_headers = ['Column1','Column2','Column3']
table_data = [['name','thing',8],['name','thing',5]]
page_title = 'Dashboard'
template_dict = {'header_list':table_headers, 'page_title':page_title,
'results':table_data,'username':user}
return render_to_response('dashboard.html',template_dict)
テンプレート内;
<table border=1 width=68% style="margin-left:12px;">
<tr>
{% for item in header_list %}
<th>{{ item }}</th>
{% endfor %}
</tr>
{% for element in results %}
<tr>
<td> {{ element.0 }} </td>
<td> {{ element.1 }} </td>
{% if element.3 > 7 %} <td class="red"> {{ element.3 }} </td>
{% else %} <td class="green"> {{ element.3 }} </td> {% endif %}
</tr>
{% endfor %}
</table>
{% endif %}
{%ifまたは%}を実行するように設定しようとすると、実際には実行できませんでした。
「7以上8以下」
最初のifステートメントが9より大きい値に対して真である必要がある場合でも、常に7より大きい数値についてこの式に評価されます。
私はDjango1.3を使用していますが、if / elseと複数の評価にはいくつかの制限があると思います。どちらにしても、赤/緑の2つの値で80%動作し、今のところ十分です。
皆さん、ありがとうございました。
このように機能するようになりました。
{% for element in results %}
<tr>
<td> {{ element.0 }} </td>
<td> {{ element.1 }} </td>
<td> {{ element.2 }} </td>
<td> {{ element.3 }} </td>
{% if element.4 > 8 %} <td class="red"> {{ element.4 }} </td>
{% else %}{% if element.4 > 8 or element.4 >= 5 %} <td class="orange"> {{ element.4 }} </td>
{%else %}{% if element.4 < 5 %}<td class="green"> {{ element.4 }} </td>
{% endif %}{% endif %}{% endif %}
<td> {{ element.5 }} </td>
elifをサポートするバージョンのDjangoを使用している場合、またはdjangoのインストールを拡張するために使用できるdjangoスニペットをいくつか追加する場合は、これは必要ありません。
フラ。