更新模板中变量的值 - Django



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

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

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

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

{% 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)

最新更新