2

我已经看到了足够多的示例,这些示例允许我在模板中声明一个新变量并设置它的值。但我想做的是更新模板内特定变量的值。

例如,我有一个对象的日期时间字段,我想根据request.user模板添加时区。所以我会创建一个template filterlike {% add_timezone object.created %},它会做的是添加时区object.created,之后每当我访问{{object.created}}它时都会给我更新的值。

谁能告诉我如何做到这一点。我知道我需要context从模板过滤器更新变量。但不知道如何。

4

1 回答 1

2

您不能修改模板中的值,但可以使用{% with %}标记定义“范围”变量:

{% with created=object.created|add_timezone %}
    Date created with fixed timezone: {{ created }}
{% endwith %}

哪里add_timezone是一个简单的过滤器:

def add_timezone(value):
    adjusted_tz = ...
    return adjusted_tz

register.filter('add_timezone', add_timezone)
于 2012-07-04T12:13:39.503 回答