django - 更新模板内变量的值 - django

标签 django django-templates django-template-filters

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

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

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

最佳答案

您无法修改模板中的值,但可以使用 {% 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)

关于django - 更新模板内变量的值 - django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11324839/

相关文章:

django - Docker compose 文件所有权

python - Django 无效 block 标记 : 'endfor' , 预期 'endblock'

django - 如何在 Django 模板中引用列表中的最后一项? {{ list.-1.key }}

javascript - Django json 单引号和双引号?

python - 转换(并验证)在 django admin 中添加的文件

Django TemplateSyntaxError 无法解析其余部分

django - 如何按字母顺序对模板中的对象列表进行排序?

python - Django float 格式只得到 float 后的数字

django - postgis 如何处理使用不同 SRID 发送的坐标

python - Django 相当于 mako 的可调用 block