django:在admin界面中更改特殊值的行颜色

时间:2011-01-16 00:02:14

标签: django django-models django-admin django-templates

我想在管理站点中的admin list_display参数之一计算特殊值时更改行颜色/列颜色。 我是Django新手。 我不知道如何破解管理界面。我为自己的应用程序管理此问题如下: 我写了一个函数来计算一个返回timedelta值的平衡时间:

models.py

def balanced_time(self):
    t = self.gew_zeit - datetime.now()
    ...
    return timedelta(t.days, t.seconds, 0)

并使用颜色功能检查颜色的条件:

def color():
    return gew_zeit - datetime.now() > timedelta(0, 18000, 0)

为了验证balanced_time值,我渲染了这个 app.html 模板表:

<table summary="This is one table from a database">

    <caption>table entries of a model</caption>

    <thead>

        <tr>
            <th align="left" scope="col">Count</th>
            <th align="left" scope="col">Balanced Time</th>

        </tr>

    </thead>

    <tbody>

    {% if order_items %}

        {% for item in order_items %}

            <tr>
                <td align="left" >{{ forloop.counter }}</td>
                {% if item.color %}
                    <td>{{ item.balanced_time }}</td>
                {% else %}
                    <td style="color:#ff0000;" >{{ item.balanced_time }}</td>
                {% endif %}

            </tr>

        {% endfor %}

    {% endif %}

    </tbody>

</table>

现在,balanced_time列中的文本为红色,当其balanced_time为&lt; 5个小时。 所有这一切工作正常,但我不知道如何将此行为传递给管理员change_list_results.html模板,或者是否有另一种更有效的方法来管理管理网站。 我还找到了以下link1以及此link。但他们不适合我。也许我做错了什么。

1 个答案:

答案 0 :(得分:3)

毕竟,以下link有效。

问题是颜色代码中的哈希符号是用“rebus”示例代码硬编码的,请参阅:

return '<span style="color: #%s;">%s</span>' % (
                             self.color_code, self.first_name)