Python2.6,Redhat6.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
以及以下通用表模板:
^{pr2}$
谢谢。在
几乎解决了
在下面布莱恩巴克的帮助下,我想出了以下办法:,
在视图中: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)
在模板中
{% for item in header_list %}
{{ item }}{% endfor %}
{% for element in results %}
{{ element.0 }} {{ element.1 }}{% if element.3 > 7 %}
{{ element.3 }}{% else %}
{{ element.3 }} {% endif %}{% endfor %}
{% endif %}
我真的不能让它做{%if或%}
当我试着让它做一个
“大于或等于7或小于或等于8”
对于大于7的数字,它总是对该表达式求值,即使对于大于9的值,第一个if语句也应为true。在
我使用的是django1.3,我认为if/else和多重评估可能有一些局限性,不管怎样,我都有80%使用红色/绿色两个值,这对目前来说已经足够好了。在
谢谢大家。在
让它像这样工作{% for element in results %}
{{ element.0 }} {{ element.1 }} {{ element.2 }} {{ element.3 }}{% if element.4 > 8 %}
{{ element.4 }}{% else %}{% if element.4 > 8 or element.4 >= 5 %}
{{ element.4 }}{%else %}{% if element.4 < 5 %}
{{ element.4 }}{% endif %}{% endif %}{% endif %}
{{ element.5 }}如果您有一个支持elif的Django版本,或者添加了一些可以扩展Django安装的Django代码段,则不需要这样做。在
万岁。在