我想基于值动态更改单元格的背景颜色。 我使用django-tables2渲染我的表并且工作正常。 这是我在模板中呈现表格的代码:
{% load querystring from django_tables2 %}
{% load trans blocktrans from i18n %}
{% load bootstrap_toolkit %}
{% if table.page %}
<div class="table-container">
{% endif %}
{% block table %}
<table class="table table-compact table-bordered"{% if table.attrs %} {{ table.attrs.as_html }}{% endif %}>
{% block table.thead %}
<thead>
<tr>
{% for column in table.columns %}
{% if column.orderable %}
<th {{ column.attrs.th.as_html }}><a href="{% querystring table.prefixed_order_by_field=column.order_by_alias.next %}">{{ column.header }}</a></th>
{% else %}
<th {{ column.attrs.th.as_html }}>{{ column.header }}</th>
{% endif %}
{% endfor %}
</tr>
</thead>
{% endblock table.thead %}
{% block table.tbody %}
<tbody>
{% for row in table.page.object_list|default:table.rows %} {# support pagination #}
{% block table.tbody.row %}
<tr class="{% cycle "odd" "even" %}">
{% for column, cell in row.items %}
<td {{ column.attrs.td.as_html }}>{{ cell }}</td>
{% endfor %}
</tr>
{% endblock table.tbody.row %}
{% empty %}
{% if table.empty_text %}
{% block table.tbody.empty_text %}
<tr><td colspan="{{ table.columns|length }}">{{ table.empty_text }}</td></tr>
{% endblock table.tbody.empty_text %}
{% endif %}
{% endfor %}
</tbody>
{% endblock table.tbody %}
{% block table.tfoot %}
<tfoot></tfoot>
{% endblock table.tfoot %}
</table>
{% endblock table %}
</div>
{% if table.page %}
{% block pagination %}
{{ table.page|pagination }}
{% endblock pagination %}
{% endif %}
我怀疑django-tables2或Django是否有一些属性来评估单元格的值,或者我需要创建一个JavaScript函数。 请给我一些链接或代码片段以实现此功能
提前致谢
答案 0 :(得分:0)
这个答案很长一段时间了,但您现在可以在列上使用attrs
执行此操作,正如所示here。
class StatusColumn(Column):
attrs = {'td': {'class': lambda value: f'status-{value}'}}
这会在class
元素上设置<td />
HTML属性以匹配单元格的值。
此外,看起来你手动完成了{% render_table ... %}
现在所做的大量工作,所以如果你重新审视这个,请看看你可以用新功能简化什么。