在Django模板中包含非本地化值的好方法

时间:2018-08-22 19:11:40

标签: localization django-templates

我需要将十进制(浮点数)值传递给Django模板中的Javascript。数据以data-元素的形式传递,例如

{% for face in photo.face_set.all %}
    <span class="face-text" style="margin-left: 1em;"
        data-roi='{ "x":{{ face.x }}, "y":{{ face.y }}, "w":{{ face.w }}, "h":{{ face.h }} }'>
        {{ face.person.display_as }}<br>
    </span>
{% endfor %}

一个明显的问题是,对于以逗号作为小数点分隔符的语言环境,{{face.(x,y,w,h)}}会被呈现,例如为1,234,而数据值应带小数点。

我知道可以使用safeunlocalize来防止这种行为,但这似乎并不正确:我的代码可能应该以某种方式区分显示值和代码值,而无需显式格式化每个值个人价值。最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

我将以python converted to JSON格式格式化所有数据的“值”部分,并将其传递给模板。然后,我将使用javascript get back the data并填充您的HTML模板。