更新模板内变量的值 - django

时间:2012-07-04 08:01:40

标签: django django-templates django-template-filters

我已经看到足够数量的示例允许我在模板中声明一个新变量并设置其值。但我想要做的是更新模板中特定变量的值。

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

有谁能告诉我这是怎么做的。我知道我需要从模板过滤器更新context变量。但不知道如何。

1 个答案:

答案 0 :(得分: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)