在 Klaviyo 中使用 django 模板语法访问名称中带有美元符号"$"的字典属性



我试图访问django模板中名称中有$的属性。不幸的是,我既不能控制过滤器,也不能控制变量名。

对象的结构如下:

{
"title": "Some title",
"metadata": {
"$price": 9.99,
"$inventory_policy": 1
}
}

我正在尝试访问{{ item.metatadata.$price }},但模板生成器因未指定的错误而崩溃。

我已经尝试了python模板的变通方法,但它们也崩溃了:

{{ item.metatadata.$$price }}
{{ item.metatadata.${price} }}

为了将来参考,这是在Klaviyo模板中。

我认为您可以使用自定义过滤器来实现这一点:https://docs.djangoproject.com/fr/4.1/howto/custom-template-tags/

在templatetags.extras.py 中

from django import template
register = template.Library()
@register.filter
def get_value(dictio, key):
return dictio.get(key, '')

以及使用它:

{% load extras %}
{{ item.metatadata|get_value:"$price" }} 

永不终止。正是出于这个原因,他们提供了一个未记录的lookup过滤器。这可能和Lucas Grugru的回答完全一样。

{{ item.metatadata|lookup:"$price" }} 

Klaviyo文件中的相关部分为https://help.klaviyo.com/hc/en-us/articles/115005084927-Guide-to-Template-Tags-and-Variable-Syntax#event-变量-4,其中在不相关的示例中使用lookup滤波器。

相关内容

  • 没有找到相关文章

最新更新