python 2.6,在 Redhat 6.3 上使用 Django 1.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”
对于大于 7 的数字,它总是会计算为这个表达式,即使第一个 if 语句对于大于 9 的任何东西都应该为真。
我正在使用 Django 1.3,我认为 if/else 和多重评估可能存在一些限制,无论哪种方式,我都有 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 片段,则不需要这样做。
欢呼。